laravel
Предотвращение спама с помощью поля-приманки
Как мы все знаем, интернет полон спам-ботов, и если у вас есть форма на вашем сайте, эти спам-боты попытаются отправить ее с поддельными значениями. Большинство этих ботов довольно тупы, и вы можете добавить в свою форму невидимое поле, которое никогда не должно содержать никакого значения. Это поле называется honeypot, и эти спам-боты заполнят это поле точно так же, как и любое другое поле.
Когда форма будет отправлена, вы можете проверить, пусто ли поле honeypot, а если это не так, то оно будет отброшено.
Добавление скрытого поля
Добавьте скрытое поле ввода и дайте ему имя и пустое значение.
<input type="hidden" name="honeypot" value="">
Проверка правильности подачи формы
При проверке запроса вы должны использовать регулярное выражение ^ $, чтобы проверить, что скрытое поле не заполено, потому что на данный момент нет правила проверки Laravel, которое могло бы дать сбой, если поле не пусто.
$this->validate([
'honeypot' => 'regex:/^$/'
]);
Конечно, это простая реализация защиты от спам-ботов, но все же это гораздо лучше, чем ничего.
См. также: защита путем подсчета только реальных нажатий клавиш
Источники:
- Дружелюбная защита WEB ресурса от атак перебором
- Laravel Honeypot 3.0
Защита форм от спама. Добавлены blade-компонент и поддержка Inertia. - https://dominik-geimer.com/articles/prevent-spam-with-a-honeypot-field-in-laravel
- 6 этапов защиты от спама https://laracasts.com/blog/the-6-stages-of-spam
Leave a reply