@fantazerno

Как защититься от авторизации ботов?

Добрый день, прошу помощи.

Дано:

- Приложение на Android
- Внешнее API
- В приложении есть авторизация через смс

Процесс авторизации:

При авторизации приложение стучится на API - API шлет запрос на СМС сервис - .... - пользователь получает СМС и авторизуется

Пользователи из "недружественных государств" выкачали APK из стора и нашли этот метод который дергает мое API и начали каждую секунду дергать смс

Пробовал делать фильтрацию на кол-во запросов, но они каждый запрос меняют IP

Подскажите, какое решение можно применить в данной ситуации

Были варианты:
- Сделать новую сборку, поменять исходники и все обфурцировать, но нормального инструмента не нашел, а те что нашел не дают полной уверенности, что нельзя собрать все назад
- Сделать авторизацию через пуши

Заранее благодаря за Ваше время.
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 3
jamakasi666
@jamakasi666
Просто IT'шник.
Раз это именно авторизация то отказаться от sms. Сделать подтверждение почтой или в мессенджерах. Или подтверждение по OTP.
Другой вариант, если аудитория конкретной страны то можно:
1 ограничить доступ по IP подсетей страны. Т.е. доступ только для страны
2 ввести проверку введённых номеров, по коду оператора
3 ввести проверку введённых номеров по наличию в твоей БД, у тебя же именно авторизация а не регистрация
4 ввести лимит по запросам до api с IP адреса обратившегося
5 усложнить обращение к апи путем введения временного ключа, ключ уникальный для каждого клиента. Видишь что с одним ключем много обращений то банишь юзверя.

Проще уйти на OTP\почту\мессенджеры.
Ответ написан
Комментировать
mikes
@mikes
ну они же наверное указывают номера на которые слать sms, делай рейт лимиты, задержку на количество смс/авторизаций на ip/номер ограничение по кодам стран и тд.
для сервера можно использовать фильтрацию по geoip
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
рассуждаем логически.
если клиент авторизуется то как минимум он отсылает свой идентификатор пусть грубо говоря номер телефона.

то есть все кто не в базе идут лесом, далее установите лимит по этому идентификатору раз в 60 сек.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы