Задать вопрос

Какие существуют способы защиты от атак на сервис, использующий смс подтверждение?

Добрый день
Есть сервис(веб-приложение), который запрашивает номер мобильного телефона перед регистрацией. Телефон должен быть проверенным, для этого на указанный номер отправляется смс с кодом для подтверждения. Отправка смс - платная услуга для сервиса, злоумышленник может отправить множество запросов на сервис, будет отправлено множество смс, у сервиса закончится лимит по смс сообщениям, сервис будет выведен из строя. Как можно защититься от такой атаки?
  • Вопрос задан
  • 724 просмотра
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@hoarywolf
Усложнить отправку формы простым curl-om.
Используйте сессии, загружайте в hidden переменные значения ajax-ом, проверяйте, что пользователь загрузил не только html-файл формы, но и какое-то изображение, что он выполняет скрипты и тд. Понятно что от эмуляции браузера это не спасет, но жизнь злоумышленникам усложнит.

Кстати, можно еще отслеживать перемещения мыши, хотя бы в пределах формы, mouseover и mouseout на ее элементах, прокручивание страница, ввод текста в элементы формы (а не программное изменение value как в phantomjs) и на основании всего этого рассчитывать вероятность бота. При невысокой активности этим всем можно пренебречь, но в моменты атаки учитывать для выявления ботов.
Ответ написан
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
В порядке приоритета:
Лимитировать количество запросов на один номер телефона по времени.
Лимитировать количество запросов с одного айпи на разные номера по времени.
Ограничить целевую аудиторию (по геоайпи отсеять пользователей из Китая, Индии, и пр. - если конечно они не являются вашей целевой аудиторией)
Ограничить общее количество запросов СМС в единицу времени (сутки, час).
Ответ написан
sim3x
@sim3x
Составь блоксхему процесса и посмотри на каких участках стоит применить лимиты и капчи
Установи во всех точках логирование
Мониторь всплески и аномалии
Установи лимиты для погашения всплесков
Повтори все с начала
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы