Безопасность при использовании REST API в приложении iPhone
Я знаю, что этот вопрос задавался в разных формах раньше. Тем не менее, я не ищу "использовать https" ответ. Я уже использую HTTPS, и меня не беспокоит чувствительность полезной нагрузки, передаваемой туда и обратно.
Однако приложение для iPhone, над которым я работаю, говорит о API REST, который я создал (у меня есть контроль над приложением и сервером - поэтому любые предложения приветствуются).
Я использую протокол OAuth2 для аутентификации, что означает, что мой «ключ API» представляет собой комбинацию идентификатора клиента и секрета клиента, которыйтолько должны быть переданы, чтобы приобрестиaccess_token
, После этого все запросы отправляются на сервер с помощьюaccess_token
и заголовок, содержащий HMAC тела запроса (с использованием секрета клиента в качестве ключа). Единственной причиной этого было то, что кто-то не мог делать запросы API с помощьюaccess_token
.
API, с которым я разговариваю, будет опубликован после выпуска приложения. Так что я не обязательно беспокоюсь о том, что другие могут делать вызовы API.
Что меня волнует, так это:
Люди, способные совершать вызовы API с использованием учетных данных клиента моего приложения (что означает, что я не могу обнаружить на стороне сервера, что он не пришел из моего приложения)Люди могут злоупотреблять дополнительными областями, которые позволит им иметь мой идентификатор клиента, а пользователи традиционных API не будут иметьЯ предполагаю, что на самом деле нет решения этой проблемы (кроме использования UIWebView и создания прославленного веб-приложения), но я решил спросить здесь в любом случае.
Можете ли вы придумать способ защиты идентификатора клиента / секрета клиента, если он должен использоваться приложением?