#android #безопасность
Есть клиент серверное приложение с регистрацией. Необходимо, чтобы регистрировался реальный человек(девайс), а не скрипт посылал пост запросы на регистрацию. Как можно в этом удостовериться? Вроде, есть у девайса аккаунты. И наверняка возможно проверить как то (например с помощью гугл апи), что девайс и аккаунт соответствуют. Но как это сделать? P.S. конкретнее надо сделать так, что бы злодей не смог зарегистрировать много(100+) аккаунтов.
Ответы
Ответ 1
Используйте Oauth 2.0 для андроид. Суть: достаем с девайса аккаунт, генерим для него AccessToken для получения информации о email. И передаем на сервер этот AccessToken и email аккаунта. На сервера по AccessToken запрашиваем у гугла email, и если совпадает с тем, что прислал юзер - можно выдавать свой token, с которым и работать дальше. Авторизация Сама библиотека Блогозапись, которая может помочь При возникновении других вопросов - просто гуглите: информации достаточно.Ответ 2
Доброй ночи! Можно привязаться к аккаунту Google Play. Таким образом проверять реальность аккаунта перед запросом на регистрацию. Минусом такого подхода - установка только через гугл плей. Второй вариант: перед разрешением любых запросов проводить идентификацию устройства. Самый простой способ, сгенерировать ХЭШ ключ (передав его на сервер вместе с инфой о девайсе единственным разрешенным без него методом АПИ), и сохранить его в SharedPreferences софта, передавать в дальнейшем при каждом запросе к серваку. Это самые простые два варианта, которые на вскидку приходят в головуОтвет 3
Мне кажется тут нет способа, основанного на специфики девайса. Но, на мой взгляд, схема обезопасить себя от массового создания аккаунтов такая: На момент авторизации ограничить время выполнения запроса (например не чаще 10 секунд на запрос с одного айпишника) Провести взаимо-обмен информацией клиента с сервером на основе набора каких-то случайных правил (и сделать цепочку множественной) например: Клиент отправляет серверу свой уникальный номер (любой, IMEI или всё что угодно) Сервер прибавляет к этому например 10. У сервера и клиента есть параметризованое дерево вопросов и ответов по которому они обмениваются верными ответами и вопросами N раз. Если всё верно - то высока вероятность что клиент - это мобильное приложение. Можно ещё придумать вариантов в этом же духе. Тут главное что должна работать связка сервера с клиентом, решая вопрос только на одной стороне не получится. Можно ещё почитать про приватные и публичные ключи и ssl аутентификацию. Не в плане применения технологий, а в плане использовании аналогичных принципов.
Комментариев нет:
Отправить комментарий