@NikSIk31

Как защитить приложение от спама запросами?

Здравствуйте! Сделал форму поиска на сайте где аяксом (fetch) получаю данные с роута php (laravel), так вот все работает, но если быстро нажимать на кнопку отправляется много одинаковых запросов.
Как защититься от такогт спама? Нужно ли это делать и на клиенте и на сервере? Ибо ведь на клиенте скрипт можно изменить.
Подскажите пожалуйста как защититься
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Если запрос с клиента не поменялся - выдаём результат из переменной JS (на клиенте).
2. Если отправляют в обход тот же запрос - выдаём кешированный результат на стороне сервера (не выполняя повторный поиск в БД)
3. Если запросы меняют и отправляют часто - ограничиваем время между соседними запросами и их параллельное количество на сервере: при начале поиска проверяем условие превышения частоты и, если всё нормально, в переменную сессии кол-ва активных запросов прибавляем 1-цу (инкремент), перед выдачей - вычитаем 1-цу (декремент). Если частота превышена - сразу возвращаем пустой результат без поиска. Превышена 3 раза - можно и забанить по IP на часик ;)
Ответ написан
alex-1917
@alex-1917
Если ответ помог, отметь решением
На клиенте блокируй кнопку, там же и валидацию приклеить будет к месту.
Ответ написан
Ваш ответ на вопрос

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

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