Защита от авторегистрации ботов

Тема в разделе "Модификации для TorrentPier (архив)", создана пользователем ZIM, 11 окт 2011.

  1. ZIM

    ZIM Пользователь

    Сообщения:
    68
    Симпатии:
    43
    Мод был написан мной когда спамботы начали очень сильно доставать оставляя по сотни сообщений в темах. Некоторые проходили активацию по почте.

    Открываем usercp_register.php
    Ищем
    PHP:
    $tp_data = array();  // данные для tpl
    После
    PHP:
    // Anti spam bot
    if(!empty($_POST['num1']) && !empty($_POST['num2']) && !empty($_POST['postnum'])){ 
     
    $num1=intval($_POST['num1']);
     
    $num2=intval($_POST['num2']);
     
    $isnum=$num1+$num2;
     
    $postnum=intval($_POST['postnum']);
    }else{
     
    $isnum 0;
     
    $postnum = -1;
    }
    Ищем
    PHP:
    if ($need_captcha && !CAPTCHA()->verify_code())
     {
     
    $errors[] = $lang['CONFIRM_CODE_WRONG'];
     }
    }

    После
    PHP:
    // Anti spam bot
    $need_chekbot = ($mode == 'register' && !IS_ADMIN);

    if (
    $submit && $postnum!=$isnum && $need_chekbot)
     {
     
    $errors[] = $lang['IS_SPAM_BOT'];
     }
    Ищем
    PHP:
    else
     {
     
    bb_die($lang['NOTHING_HAS_CHANGED']);
     }
     }
    }
    После
    PHP:
    // Anti spam bot
    $num1=intval(rand(110)); 
    $num2=intval(rand(110));
    Ищем
    PHP:
    'U_RESET_AUTOLOGIN' => "login.php?logout=1&reset_autologin=1&sid={$userdata['session_id']}",
    После
    PHP:
    // Anti spam bot
     
    'NEED_CHEK_BOT' => $need_chekbot,
     
    'NUM1' => $num1
     
    'NUM2' => $num2,
     
    'ANTI_SPAM' => $lang['ANTI_SPAM'],
     
    'MSG_ANTI_SPAM' => $lang['MSG_ANTI_SPAM'],
    Открываем usercp_register.tpl
    Ищем
    PHP:
    <!-- IF CAPTCHA_HTML -->
    <
    tr>
     <
    td>{L_CONFIRM_CODE}:</td>
     <
    td><span id="refresh_captcha">{CAPTCHA_HTML}</span> <img align="middle" src="/images/pic_loading.gif" title="{L_UPDATE}" onclick="ajax.exec({ action: 'user_register', mode: 'refresh_captcha'}); return false;"></td>
    </
    tr>
    <!-- ENDIF -->
    После
    PHP:
    <!-- IF NEED_CHEK_BOT -->
    <
    tr>
     <
    td>{L_ANTI_SPAM}: * <h6>{MSG_ANTI_SPAM}: {NUM1}+{NUM2} = ?</h6></td>
     <
    input type="hidden" name="num1" value="{NUM1}" />
     <
    input type="hidden" name="num2" value="{NUM2}" />
     <
    td><input type="text" name="postnum" size="35" maxlength="8" /></td>
    </
    tr>
    <!-- ENDIF -->
    Открываем lang_main.php и в самый конец вставляем
    PHP:
    // Anti spam bot
    $lang['ANTI_SPAM'] = 'Антиспам бот проверка'
    $lang['MSG_ANTI_SPAM'] = 'Сколько будет';
    $lang['IS_SPAM_BOT'] = 'Ошибка при проверка. Неправильный ответ на антиспам вопрос';
      
    В общем алгоритм очень простой и унылый. Но работает. Кроме того мне было трудно перенести это мод со старой версии трекера так как код usercp_register.php порядочно изменился. Так что если что-то я поставил не туда то я не специально. На данный момент все работает. В любом случае со спамботами на HQ версии были проблемы.
     
  2. Basilevs

    Basilevs Пользователь

    Сообщения:
    645
    Симпатии:
    142
    Версия TP:
    иная
    Это были хуманы, а раз так, то это не спасёт - только лишнее время.

    Нужно ограничить,

    на выбор или вместе:
    показ формы быстрого ответа (после n-го стажа на сайте или кол-ва сообщения).
    усиление флуд-контроля для новичков (отсчёт по стажу).
    ограничение количества сообщения для новичков (отсчёт по стажу).

    Полностью не победит, но в разы уменьшит.
     
  3. ZIM

    ZIM Пользователь

    Сообщения:
    68
    Симпатии:
    43
    Да, но после установки этого ботов в разы поменьшало. Точнее их нет совсем. Если бы это не работало я бы искал что-то новое.
    Насколько я знаю есть хрумеру все равно есть ли форма быстрого ответа или нет. Программа все равно шлет пост запрос с необходимыми параметрами так что все равно сообщение будет создано.

    усиление флуд-контроля для новичков (отсчёт по стажу).
    ограничение количества сообщения для новичков (отсчёт по стажу).

    Но все равно боты регистрироваться будут. Лично меня напрягает сотня пользователей в день с именами gjeh78ebub и.т.п
     
  4. frank

    frank Гость

    гмм, по-моему лучше просто обновить ккапчу или адаптировать какую-нибудь другую. мне например нравится с рандомным вопросом, допустим на какой картинки изображён кот и т.п., на дев-форуме рег.рф была.
     
  5. Lion18

    Lion18 Пользователь

    Сообщения:
    354
    Симпатии:
    14
    Поддержу. Может кто займется этим вопросом с капчей...
    ZIM, Спасибо за код, пригодится.
     
  6. dimsat1

    dimsat1 Пользователь

    Сообщения:
    40
    Симпатии:
    1
    ZIM, отличный мод, спасибо:)
     

Поделиться этой страницей