Вопрос

Как я могу убедиться, что только моему приложению iphone разрешено использовать мое приложение app Engine для отправки и получения данных?Вероятно, мне придется использовать секретный ключ, но я не знаю как.Могу ли я просто использовать post / get для отправки моего статического ключа по https?Или мне нужно использовать какой-то динамический алгоритм секретного ключа?

Мы будем признательны за любую помощь!Бьорн

Это было полезно?

Решение

Предполагая, что вы думаете, что можете скрыть от раскрытия секрет приложения iPhone, вам нужен HMAC.Для каждого вашего запроса передавайте текст запроса в функцию, например HMAC-SHA1, используя ваш секретный ключ в качестве ключа, и добавляйте результат к сделанному вами запросу.Когда сервер получит запрос, выполните ту же операцию и убедитесь, что HMAC совпадают.

Другие советы

Я не совсем уверен, чего вы пытаетесь достичь.

Но делиться секретами или ключами API внутри приложения для iPhone, как правило, — плохая идея.

Вы говорите о своем собственном приложении AppEngine.Почему бы вам не создать простой (на основе JSON) веб-сервис на стороне AppEngine, с которым взаимодействует ваше приложение?Я сомневаюсь, что есть необходимость напрямую использовать ваши учетные данные AppEngine из приложения для iPhone.

Если это не ответ на ваш вопрос, предоставьте более подробную информацию.

Используйте SSL-сертификат в своем веб-сервисе, поскольку любые передаваемые ему данные зашифрованы.

Зашифрованное SSL-соединение требует, чтобы вся информация, передаваемая между клиентом и сервером, была зашифрована отправляющим программным обеспечением и расшифрована принимающим программным обеспечением, защищающим частную информацию от перехвата через Интернет.

Кроме того, при каждом обращении к службе отправляйте один guid, который вы определили, вместе с вашими данными.Этот guid должен быть проверен, прежде чем веб-служба выполнит какое-либо действие.Чтобы заблокировать еще больше, вы можете создать службу, которая генерирует guid, который необходимо передавать обратно для любого последующего вызова службы.

Также убедитесь, что вы никому не позволяете видеть ваш wsdl на сервере, иначе они могут угадать ваши параметры.

Сертификат SSL от RapidSSL стоит 17 долларов в год, так что беспокоиться не о чем.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top