Страницы

Поиск по вопросам

вторник, 17 марта 2020 г.

Android. Проверка на регистрацию реального человека(девайса)

#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 аутентификацию. Не в плане применения технологий, а в плане использовании аналогичных принципов.

Комментариев нет:

Отправить комментарий