JS антибот для сайта, избавляемся от спама

Добавлен: 

JS антибот для сайта, избавляемся от спама

js антибот

Недавно столкнулся с очень раздражающей проблемой – на моём сайте появилось большое количество спама и постоянно росло, специальные боты-спамеры регистрировались на сайте и оставляли спам в комментариях, старались наставить кучу ссылок (но, благо что я запретил вывод HTML в комментариях). Я всегда знал, что защита от ботов на сайте – это не последнее дело, но пренебрегал этим до последнего, как говорится “пока петух не клюнет…”.

Сначала думал создать каптчу на основе генерирования случайных чисел и динамически генерировать изображение с кодом (на PHP) или несложный примерчик типа ”14+2=”. Но, как показывают отзывы простых юзеров, ручной ввод каптчи раздражает некоторых из них, и я захотел создать защиту от ботов-спамеров незаметно для пользователя.

Реализация данной задачи оказалась довольно простой, я использовал принцип простого примера типа ”14+2=”, но вместо расчёта пользователя и ручного ввода, я использовал JavaScript. Дело в том, что выполнение JavaScript ботом – это уже само по себе хорошая преграда для автопостинга. А к тому же, для обхода данной защиты требуется поддержка ботом Cookie, иначе, ни один из 199998 вариантов ответа не будет верным. И, для того, что бы отправить спам, боту нужно сначала получить форму с простым примером и Cookie, а только потом отправить форму с ответом и не забыть про Cookie.

Вот простой пример реализации данной задачи:

<?php
//заводим сессию
session_start() ;

//JS антибот
$antibot_code = $_POST['antibot'];
$gen_cod1 = mt_rand(0, 99999);
$gen_cod2 = mt_rand(0, 99999);
$gen_cod_sum = $gen_cod1 + $gen_cod2;
//извлекаеи/заносим в сессию
$check_code = $_SESSION['js_antibot'];
if($check_code == "") $check_code == $gen_cod_sum;
$_SESSION['js_antibot'] = $gen_cod_sum ;
$antibot = "onSubmit=\"window.document.comentform.antibot.value=$gen_cod1 + $gen_cod2\"";

if($antibot_code != ""){
//проверяем правильность ввода
if($antibot_code == $check_code){

//тут мы выполняем нужные действия
print('тут мы выполняем нужные действия');

}
else print('Не работают JavaScripts или Cookie');
}


//выводим форму
print("<form name=\"comentform\" action=\"index.php\" method=\"post\" $antibot>
<input type=\"hidden\" name=\"antibot\" value=\"y\" />
<input type=\"text\" name=\"text\" value=\"\" />
<input type=\"submit\" value=\"Отправить\" />
<input type=\"reset\" value=\"Отменить\" />
</form>");
?>

Недостатки данного метода в том, что пользователи, у которых отключены JS или Cookie не смогут выполнить защищаемую нами функцию.

Данный метод, конечно не гарантирует максимального уровня защиты, но он прекрасно справился с поставленной задачей на моём сайте, спама больше НЕТ!!!

Не забываем оставлять комментарии и отзывы, нам важно ваше мнение!

А еcли статья Вам очень понравилась и Вы считаете, что она достойна внимания. Тогда просто поделитесь ею, в социальной сети:


Интересная рекламма:


Возможно вам будет интересно
Методы защиты сайта от спама, защита HTML форм Где взять контент для сайта? Гостевая книга для сайта, нужна ли она

Комментарий добавил: Гость - Ксения
Добавлен: 11 09 2013 23:16:45
Гость - Ксения
Чудесно, только совсем непонятно как ее на сайт поставить

Комментарий добавил: Гость - KON
Добавлен: 23 03 2014 19:58:37
Гость - KON
Спасибо, работает!

Добавление комментария

Имя -

E-mail -





Читать в Яндекс.Ленте

Яндекс.Метрика


Power by xDroid. Copyright © 2009 - 2016 VEB.name
Копирование информации только с обратной ссылкой
Время генерации страницы : 0.0101 сек.