Защита от ботов формы регистрации с помощью JS

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

Прежде всего надо выяснить откуда он поступает, т.е. локализация форм и сайтов. Далее нужно приступить к конфигурации капчи (captcha). Но иногда (в случае с Битрикс) это слабая защита, так как бот ее с успехом раскодирует и спам продолжает атаковать емейлы.

Для решения этой проблемы мы придумали следующее простое и эффективное решение.

У спам-ботов зачастую не выполняется JS (в загружаемых страницах), так как они построены по примитивному принципу и просто ищут в форме поле input, в которое вбивают заготовленный контент и раскодированный код каптчи.

Итак, мы делаем следующее! В форму, которую мы хотим защитить вставляем код:

<input id=«check» name=«check» type=«hidden» value=«» />

В кнопку, по нажатию на которую идет отправка, добавляем:

onclick=»document.getElementById(‘check’).value = ‘secretcode’;»

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

if ($_POST[‘check’] != ‘secretcode’) exit(‘Spam detected’);

Работает это таким образом — при операции submit, наш JS скрипт записывает в пустую переменную секретный код. От живого человека, у которого работает JS — эта переменная приходит со значением, а от бота — нет. Конечно, если у человека отключен JS, то его определит как бота, но это уже необходимое зло.

Пользуйтесь и пусть ваши емейлы будут всегда свободны от спама!

Comments are closed.