Самый действенный способ избавления от спама рекламных ботов в форуме IPB.
Для того, чтобы писать рекламные сообщения, бот должен зарегистрироваться.
Обратите внимание — на странице уже есть форма ввода графического кода. Однако, она ничуть не помогает. Современные программы для регистрации научились распознавать графические коды.
Программа распознаёт код, «заполняет» все поля формы регистрации и отправляет форму на сервер.
Но есть одно но, благодаря которому можно избежать автоматических регистраций, а, как следствие, спама на Вашем форуме.
На страницах есть JavaScript, который исполняется броузером, когда форум читает человек, но никак не исполняется когда бот автоматически пытается зарегистрироваться на форуме. Именно при помощи JavaScript’а можно решить проблему. Сделать это довольно просто.
Форма отправляет значения act=Reg и CODE=02 методом POST в index.php. Это — необходимые значения для регистрации. Именно их боты получают из формы и отправляют на сервер. Но ведь никто не помешает в движке форума изменить значения и сделать так, чтобы скажем отправлялось CODE=28. Давайте так и сделаем. Почти так, но чуть сложнее. Сделаем, чтобы в форме вначале стояло значение CODE=02, а при отправке JavaScript ом менялось на 28.
Решение проблемы и последующая защита от плохих регистраций и спама (применимо к IPB >=2.10)
1. В админ-панели, «Внешний вид» -> Скин -> HTML-фрагменты -> Регистрация -> ShowForm
найдите:
PHP
<input type="hidden" name="CODE" …./>
замените на
PHP
<input type="hidden" name="CODE" id="r_code" value="02" />
2. Откройте файл форума /jscripts/ipb_register.js, в функции validate_reg_form найдите:
PHP
return reg_oktogo ? true : false;
замените на:
PHP
if(reg_oktogo) {document.getElementById( 'r_code' ).value='28'; return true;} else return false;
3. Откройте файл /sources/action_public/register.php, найдите код:
PHP
case '02': $this->create_account(); break;
После него вставляйте:
PHP
case '28': $this->create_account(); break;
4. Найдите:
PHP
//-------------- // Check for errors in the input. //--------------
После этого кода вставляйте:
PHP
if(intval($this->ipsclass->input['CODE'])!=28) $form_errors['general'][] = "Включите javaScript, иначе Вы не сможете провести регистрацию.";
Что скажите, действенна ли данная защита?!
Спустя 14 минут, 3 секунды (2.03.2007 - 20:36) vasa_c написал(а):
А юзеры без JS?
Сегодня прикрутили какой-то мод с вопросами, может поможет.
Сегодня прикрутили какой-то мод с вопросами, может поможет.
Спустя 3 часа, 30 минут, 51 секунда (3.03.2007 - 00:07) welder написал(а):
как вариант можно прикрутить математический опросник
PHP
<?php ############ <файл выода защитного кода> ############ //заносим слова вместо символов //генерим первое число действие и второе число // выводим HTML код и скрытое поле echo "<B>$count1</B> $action_text[$action] <B>$count2</B> = <input name='cheker' type='text' maxlength=3 size=5> (посчитайте и введите значение) <input name='chek' type='hidden' value='$count1|$action|$count2|'>"; ############ </файл выода защитного кода> ############ ############ <файл проверки защитного кода и ведённых данных> ############ // тут уже всё переделываем под код фоума //Вытягиваем cheker (введённый ответ) и chek (скрытое поле) $cheker=$_POST['cheker'];$chek=$_POST['chek']; //Фытягиваем из chek $count1,$action,$count2 // пошли проверки // проверяем $action и делаем приписанное ему действие if ($action == 0) $number = $count1*$count2; if($action == 1) $number = $count1+$count2; if($action == 2) $number = $count1-$count2; // ну тут уже сравниваем cheker (введённый ответ) и $number (настоящий ответ) ############ </файл проверки защитного кода и ведённых данных> ############ ?>
Спустя 2 часа, 25 минут, 28 секунд (3.03.2007 - 02:32) Patrick написал(а):
Капчу надо ставить нормальную свою! или JS на худой конец...
Пользователи без JS это параноики какие то....
Пользователи без JS это параноики какие то....
Спустя 16 минут, 32 секунды (3.03.2007 - 02:49) welder написал(а):
Цитата
Капчу надо ставить нормальную свою!
Самый оптимальный вариат по идее о других и думать не стоит..
Спустя 6 часов, 36 минут, 10 секунд (3.03.2007 - 09:25) HardWoman написал(а):
Цитата
Капчу надо ставить нормальную свою!
давайте же скорее где взять эту капчу?
Спустя 46 минут, 29 секунд (3.03.2007 - 10:12) vasa_c написал(а):
Цитата
как вариант можно прикрутить математический опросник
Да боты его пройдут легче, чем большинство кулхакеров.
Цитата
Пользователи без JS это параноики какие то....
Ну, это, например, не пользователи PC, а всяких продвинутых гаджетов.
Спустя 3 часа, 14 минут, 28 секунд (3.03.2007 - 13:26) Patrick написал(а):
http://pear.php.net/package/Text_CAPTCHA
http://pear.php.net/package/Text_CAPTCHA_Numeral
http://www.captcha.ru/
Ещё есть в JPGraf'e модуль антиспам!
http://pear.php.net/package/Text_CAPTCHA_Numeral
http://www.captcha.ru/
Ещё есть в JPGraf'e модуль антиспам!
Спустя 3 минуты, 10 секунд (3.03.2007 - 13:29) vasa_c написал(а):
После того, как вчера модуль с вопросами приделали, ботов пока не наблюдалось. Предлагаю подождать и посмотреть, что из этого выйдет.
Спустя 24 минуты, 30 секунд (3.03.2007 - 13:54) Patrick написал(а):
А вопросы зачётные!
Спустя 7 минут, 11 секунд (3.03.2007 - 14:01) vasa_c написал(а):
Да. Не только от ботов защищают, но и от большинства ламеров. )
Спустя 43 минуты, 6 секунд (3.03.2007 - 14:44) HardWoman написал(а):
ОК :)
Спустя 4 месяца, 13 дней, 6 часов, 43 минуты, 29 секунд (16.07.2007 - 20:28) Azimut написал(а):
Цитата(vasa_c @ 3.3.2007, 14:29) [snapback]14946[/snapback]
После того, как вчера модуль с вопросами приделали, ботов пока не наблюдалось. Предлагаю подождать и посмотреть, что из этого выйдет.
Здавствуйте !!
а не могли бы вы по подробней рассказать про этот модуль если не затруднит или дать ссылку где можно найти инфу.
(форум IPB 2.1.7)
Заранее благодарен.
Спустя 12 часов, 18 минут, 31 секунда (17.07.2007 - 08:46) md5 написал(а):
Спустя 2 месяца, 23 дня, 6 часов, 57 минут, 29 секунд (10.10.2007 - 15:44) vleoff написал(а):
и как его установить?
_____________
Сложные иерархии рулят!!!