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

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

Здравствуйте! Сделал форму поиска на сайте где аяксом (fetch) получаю данные с роута php (laravel), так вот все работает, но если быстро нажимать на кнопку отправляется много одинаковых запросов.
Как защититься от такогт спама? Нужно ли это делать и на клиенте и на сервере? Ибо ведь на клиенте скрипт можно изменить.
Подскажите пожалуйста как защититься
  • Вопрос задан
  • 118 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Stepik
    JavaScript с нуля - основы языка и практика для начинающих
    2 недели
    Далее
  • Merion Academy
    Фронтенд-разработчик с нуля
    4 месяца
    Далее
  • Skypro
    JavaScript-разработчик с нуля
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Если запрос с клиента не поменялся - выдаём результат из переменной JS (на клиенте).
2. Если отправляют в обход тот же запрос - выдаём кешированный результат на стороне сервера (не выполняя повторный поиск в БД)
3. Если запросы меняют и отправляют часто - ограничиваем время между соседними запросами и их параллельное количество на сервере: при начале поиска проверяем условие превышения частоты и, если всё нормально, в переменную сессии кол-ва активных запросов прибавляем 1-цу (инкремент), перед выдачей - вычитаем 1-цу (декремент). Если частота превышена - сразу возвращаем пустой результат без поиска. Превышена 3 раза - можно и забанить по IP на часик ;)
Ответ написан
alex-1917
@alex-1917
Если ответ помог, отметь решением
На клиенте блокируй кнопку, там же и валидацию приклеить будет к месту.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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