Защита от спама формы. Защита от спама без использования капчи. Ловушка со скрытым полем и HTML сущностями

Вайбер на компьютер 13.03.2019
Вайбер на компьютер

Всякий спам, отправляемый через различные формы ввода, раздражает абсолютно всех владельцев сайтов. В большинстве случаев нежелательная и нервирующая информация, как правило содержащая внешние ссылки, отправляется различными спам-ботами. Каждый вебмастер пытается защищать свои веб-ресурсы от спама разными способами, но в большинстве случаев используется «капча». Однако капча, особенно «навороченная», как правило нервирует посетителей таких сайтов, что может сказаться на посещаемости. В этой заметке предлагаю вам познакомимся с некоторыми несложными, но в то же время эффективными способами защиты от спама без использовании капчи.

Использование CSS для скрытия полей формы

Можно в форму добавить дополнительные поля, но скрыть их с помощью CSS, чтобы эти поля не были видны обычному, реальному посетителю сайта, т.е. чтобы ему не нужно было их заполнять. При отправке данных через форму, PHP-скрипт, обрабатывающий запрос на стороне сервера, должен проверять данные, переданные в запросе.

Поля HTML формы:

Hidefield { display:none; }

PHP скрипт, принимающий данные, отправленные из формы:

If ($_POST["anydata1"] != "" or $_POST["anydata2"] != "http://") { // если поле "anydata1" не пустое или // значение поля "anydata2" содержит строку, отличную от "http://" // то запрос НЕ принимается, т.е. данные не будут далее обрабатываться или сохраняться в БД } else { // принимаем данные запроса }

Этот метод вполне пригоден, но только тогда, если спам-бот не принимает во внимание и не обрабатывает CSS, но таких ботов все же подавляющее большинство.

Использование Javascript для добавления CSS-класса к полям формы

С помощью Javascript можно немного улучшить выше описанный метод - к скрытым полям ввода можно добавлять соответствующий CSS-класс используя Javascript:

document.getElementById("anydata1").className = "hidefield";

Этот метод сработает, если спам-бот не обрабатывает Javascript, но в то же время посетители, у которых в браузере отключена поддержка JS (это часто встречается на смартфонах), будут видеть поля, которые мы пытались скрыть от них.
Можно усовершенствовать и этот метод - зашифровать или закодировать сам Javascript-код. В интернете можно найти много онлайн сервисов для кодирования JS-скриптов.

Изменение имен полей формы с помощью PHP

Чтобы сбивать с толку спам ботов, можно периодически или регулярно менять имена полей HTML-форм. Самый простой способ - использовать функцию date() , например как date("Yz") , где «Y» - это год (2014), а «z» - порядковый номер дня в году (дни нумеруются начинается с 0). В результате date("Yz") вернет значение примерно такое «201446» (2014 год и 46-й день, т.е. 16 февраля).



Рекомендуем почитать

Наверх