@arsenaljek

Как отсечь «Спам запросы» роботов/пользователей?

Имею сайт на котором есть такая форма, которая выдает странички при вводе артикула.
<form action="#" method="GET" class="my-2 my-lg-0" role="search" name="search">
                                <div class="input-group">
                                    <input type="text" name="sku" class="form-control">
                                    <div class="input-group-append">
                                        <button class="btn btn-success" type="submit">Поиск</button>
                                    </div>
                                </div>
                            </form>

Стал замечать, что с определенных ip идёт "бомбежка" несуществующими артикулами.
Как это можно пресечь? Я думал добавить скрытое поле, но т.к форма уходит GET запросом, то это будет отображаться в Урле. Урл менять мне не нужно
  • Вопрос задан
  • 118 просмотров
Пригласить эксперта
Ответы на вопрос 4
khegay
@khegay
Founder, Garuna
  1. CSRF, решается добавлением и проверкой XSRF-токеном
  2. reCAPTCHA - бесплатный инструмент от Гугла
  3. Cloudflare - сервис с кучей продуктов, как раз для решения ваших проблем. Есть бесплатные тарифы
Ответ написан
Комментировать
samodum
@samodum
Какой вопрос - такой и ответ
Данная задача решается на стороне сервера, а не клиента.
Например, ставится fail2ban.
Средств много
Ответ написан
Recosh
@Recosh
Программист студент
Большинство ботов тупые и не выполняют JS код на странице. Поэтому обычно хватает такой конструкции (используется jQuery):
Перед закрывающим тегом </body>
<script>
$('form').append('<input type="hidden" name="zayac" value="ubezhal">')
</script>


И делай в PHP проверку где принимаешь данные из формы как нибудь так:
if (empty($_GET['zayac']) or $_GET['zayac'] != 'ubezhal') exit("Error, please enable JS in your browser");


От автоматических рассылок это спасает, а от направленной спам атаки нет.
Там уже юзать: CSRF, reCAPTCHA, Cloudflare или тот же fail2ban, как написали ранее
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Добавляйте линк на обработчик формы только после нажатия на кнопку поиска (submit).
Нет линка - нет запросов.
Ответ написан
Ваш ответ на вопрос

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

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