Запрет "поддельный клиент" для приложения ios - PullRequest
4 голосов
/ 06 февраля 2012

У нас есть приложение для Android и IOS, которое отправляет данные и команды на сервер с веб-сервисом http.Как я могу предотвратить возможность того, что поддельные клиенты также могут что-то отправить на сервер?Как я могу определить на сервере, действительно ли данные / команда поступают из наших приложений.

Ответы [ 4 ]

9 голосов
/ 06 февраля 2012

Вы не можете действительно предотвратить это.Существует несколько методов, которые затрудняют злоупотребление вашими услугами.

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

Если у вас есть достаточно времени, вам следует подумать об использовании комбинации этих двух методов плюс аутентификация со встроенным ssl-сертификатом.Вы можете просто добавить это в свой проект, и если кто-то действительно хочет злоупотребить вашим сервисом, он должен извлечь этот сертификат по крайней мере из вашего приложения.

Существуют и другие полезные методы, но вы не можете предотвратить реверс-инжиниринг или прослушивание сети.

С уважением, fuxx

3 голосов
/ 06 февраля 2012

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

Вместо этого следуйте правилу разработки многопользовательской игры:

Не доверяйте клиенту.

Не думайте о вашем приложении как о пользовательском интерфейсе.Представьте себе ваш сетевой протокол / API как пользовательский интерфейс;затем спроектируйте этот интерфейс, чтобы его нельзя было злоупотреблять.

Возможно, не удастся сделать это полностью, но, если вы добьетесь успеха, у вас будет настоящая безопасность (вместо того, чтобы бороться с тем же проигрышем).битва как DRM-системы).

2 голосов
/ 06 февраля 2012

Я бы реализовал oAuth.См. по следующей ссылке для получения дополнительной информации о том, как реализовать такое решение.

1 голос
/ 06 февраля 2012

Вы не можете.Это так просто ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...