laravel

Предотвращение спама с помощью поля-приманки

Как мы все знаем, интернет полон спам-ботов, и если у вас есть форма на вашем сайте, эти спам-боты попытаются отправить ее с поддельными значениями. Большинство этих ботов довольно тупы, и вы можете добавить в свою форму невидимое поле, которое никогда не должно содержать никакого значения. Это поле называется honeypot, и эти спам-боты заполнят это поле точно так же, как и любое другое поле.

Когда форма будет отправлена, вы можете проверить, пусто ли поле honeypot, а если это не так, то оно будет отброшено.

Добавление скрытого поля

Добавьте скрытое поле ввода и дайте ему имя и пустое значение.

<input type="hidden" name="honeypot" value=""> 

Проверка правильности подачи формы

При проверке запроса вы должны использовать регулярное выражение ^ $, чтобы проверить, что скрытое поле не заполено, потому что на данный момент нет правила проверки Laravel, которое могло бы дать сбой, если поле не пусто.

$this->validate([
    'honeypot' => 'regex:/^$/'
]);

Конечно, это простая реализация защиты от спам-ботов, но все же это гораздо лучше, чем ничего.

См. также: защита путем подсчета только реальных нажатий клавиш

Источники:

 

Афоризм дня:
Любовь к ближнему ограничена тем, насколько каждый человек любит себя. (578)

Leave a reply