Вредоносное ПО (malware) - это назойливые или опасные программы,...
Всякий спам, отправляемый через различные формы ввода, раздражает абсолютно всех владельцев сайтов. В большинстве случаев нежелательная и нервирующая информация, как правило содержащая внешние ссылки, отправляется различными спам-ботами. Каждый вебмастер пытается защищать свои веб-ресурсы от спама разными способами, но в большинстве случаев используется «капча». Однако капча, особенно «навороченная», как правило нервирует посетителей таких сайтов, что может сказаться на посещаемости. В этой заметке предлагаю вам познакомимся с некоторыми несложными, но в то же время эффективными способами защиты от спама без использовании капчи.
Можно в форму добавить дополнительные поля, но скрыть их с помощью 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-скриптов.
Чтобы сбивать с толку спам ботов, можно периодически или регулярно менять имена полей HTML-форм. Самый простой способ - использовать функцию date() , например как date("Yz") , где «Y» - это год (2014), а «z» - порядковый номер дня в году (дни нумеруются начинается с 0). В результате date("Yz") вернет значение примерно такое «201446» (2014 год и 46-й день, т.е. 16 февраля).
Рекомендуем почитать |