Хак Смена адреса регистрации (антиспам)

Тема в разделе "DLE", создана пользователем fumofuuu, 6 фев 2013.

Информация :
Актуальная версия DataLife Engine 12.0
( Final Release v.12.0 | Скачать DataLife Engine | Скачать 12.0 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.3 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. fumofuuu

    fumofuuu

    Регистр.:
    24 сен 2011
    Сообщения:
    280
    Симпатии:
    125
    [​IMG]
    Представляю Вашему вниманию неплохой хак от массовой регистрации ботов и спама, проделав небольшую правку кода, Вам удастся на кое какое время избавится от массовой регистрации ботов и спама на Вашем сайте.

    Для того, чтобы полностью и правильно поменять адрес странички регистрации с, например, http://домен/?do=register на http://домен/?do=my_reg, необходимо произвести такие изменения в файлах DLE:

    Автор: ZEOS.IN

    Кому нужна админка: by vitnet
    Открываем engine/inc/options.php находим:
    PHP:
    showRow$lang['opt_sys_ut'], $lang['opt_sys_utd'], makeDropDown( array ("0" => $lang['opt_sys_reg'], "1" => $lang['opt_sys_reg_1'] ), "save_con[registration_type]""{$config['registration_type']}) );
    Ниже прописываем:
    PHP:
    showRow"Ссылка на страницу регистрации""Укажите желаемое имя страницы регистрации""<input class=\"edit bk\" type=text style=\"text-align: center;\"  name='save_con[register]' value=\"{$config['register']}\" size=10>" );
    То что надо изменить ещё:
    Код:
    Изменяем адрес странички регистрации | Временно избавляемся от массовой регистрации ботов и спама
     
    Для того, чтобы полностью и правильно поменять адрес странички регистрации с, например, http://домен/?do=register на http://домен/?do=my_reg, необходимо произвести такие изменения в файлах DLE:
     
     
    1)    Открыть файл: /engine/data/config.php и в массив $config в самом низу добавить: 'register' => "my_reg",
     
        Было
        ...
     
        'rss_number' => "10",
     
        'rss_format' => "1",
     
        'version_id' => "9.7",
     
        );
     
        ?>
     
     
        Стало
        ...
     
        'rss_number' => "10",
     
        'rss_format' => "1",
     
        'version_id' => "9.7",
     
        'register' => "my_reg",
     
        );
     
        ?>
     
        Вместо слова "my_reg" используйте любое другое слово (оно должно быть уникальным для вашего сайта).
     
     
    2)    В файле /engine/init.php найти строчку:
     
        $tpl->set( '{registration-link}', $PHP_SELF . "?do=register" );
        и заменить на:
        $tpl->set( '{registration-link}', $PHP_SELF . "?do={$config['register']}" );
     
     
    3)    В файле /engine/engine.php найти строчки:
     
        case "register" :
        и заменить на:
        case $config['register'] :
     
     
        elseif ($do == 'register') $nam_e = $lang['title_register'];
        и заменить на:
        elseif ($do == $config['register']) $nam_e = $lang['title_register'];
     
     
    4)    В файле /engine/modules/static.php найти строчки:
     
        if( $_GET['page'] == "dle-rules-page" ) if( $do != "register" ) {
        и заменить на:
        if( $_GET['page'] == "dle-rules-page" ) if( $do != $config['register'] ) {
     
     
        $tpl->set( '{ACCEPT-DECLINE}', "<form  method=\"post\" name=\"registration\" id=\"registration\" action=\"\"><input type=\"submit\" class=\"bbcodes\" value=\"{$lang['rules_accept']}\" />&nbsp;&nbsp;&nbsp;<input type=\"button\" class=\"bbcodes\" value=\"{$lang['rules_decline']}\" onclick=\"history.go(-1); return false;\" /><input name=\"do\" type=\"hidden\" id=\"do\" value=\"register\" /><input name=\"dle_rules_accept\" type=\"hidden\" id=\"dle_rules_accept\" value=\"yes\" /></form>" );
        и заменить на:
        $tpl->set( '{ACCEPT-DECLINE}', "<form  method=\"post\" name=\"registration\" id=\"registration\" action=\"\"><input type=\"submit\" class=\"bbcodes\" value=\"{$lang['rules_accept']}\" />&nbsp;&nbsp;&nbsp;<input type=\"button\" class=\"bbcodes\" value=\"{$lang['rules_decline']}\" onclick=\"history.go(-1); return false;\" /><input name=\"do\" type=\"hidden\" id=\"do\" value=\"{$config['register']}\" /><input name=\"dle_rules_accept\" type=\"hidden\" id=\"dle_rules_accept\" value=\"yes\" /></form>" );
     
     
    5)    В файле /engine/modules/register.php найти строчки:
     
        $row['template'] = str_replace( "{%validationlink%}", $config['http_home_url'] . "index.php?do=register&doaction=validating&id=" . $idlink, $row['template'] );
        и заменить на:
        $row['template'] = str_replace( "{%validationlink%}", $config['http_home_url'] . "index.php?do={$config['register']}&doaction=validating&id=" . $idlink, $row['template'] );
     
     
        <input name=\"do\" type=\"hidden\" id=\"do\" value=\"register\" />
        и заменить на:
        <input name=\"do\" type=\"hidden\" id=\"do\" value=\"{$config['register']}\" />
     
     
        msgbox( $lang['all_info'], $lang['confirm_ok'] . "<br /><br /><a href=\"" . $config['http_home_url'] . "index.php?do=register&doaction=validating&step=2&id=" . rawurlencode( $_REQUEST['id'] ) . "\">" . $lang['reg_next'] . "</a>" );
        и заменить на:
        msgbox( $lang['all_info'], $lang['confirm_ok'] . "<br /><br /><a href=\"" . $config['http_home_url'] . "index.php?do={$config['register']}&doaction=validating&step=2&id=" . rawurlencode( $_REQUEST['id'] ) . "\">" . $lang['reg_next'] . "</a>" );
     
     
        <input name=\"do\" type=\"hidden\" id=\"do\" value=\"register\" />
        и заменить на:
        <input name=\"do\" type=\"hidden\" id=\"do\" value=\"{$config['register']}\" />
     
    6)    В файле /robots.txt найти строчку Disallow: /*do=register и удалить ее.
     
    7)    Из всех файлов шаблона удалить старую ссылку на страницу регистрации, а в шаблоне login.tpl использовать тег {registration-link} (подробнее: http://dle-news.ru/extras/online/logintpl.html) для вывода нашей новой ссылки для регистрации.
     
    Рекомендации:
     
    I)
        Если вы на своем сайте используете reCAPTCHA, то обязательно создайте для этой капчи персональный публичный и приватный ключи.
        Сгенерировать ключи для своего сайта можно тут: http://www.google.com/recaptcha
        После того, как ключи сгенерированы, их надо вставить в админке DLE в разделе "Настройка системы/Настройки безопасности скрипта".
     
    II)
        Обязательно используйте возможность стандартного модуля DLE - Вопросы и ответы для защиты от спама ( _http://ваш_домен/admin.php?mod=question ).
     
    III)
        Включайте возможность комментирования новостей только зарегистрированным пользователям. Или вставляйте на свой сайт комментирование от Вконтакте и Facebook.
     
    IV)
        Используйте стандартные функции DLE:
     
        * Отправлять комментарии на модерацию
        * Максимальное количество комментариев в сутки
        * Автоматическое удаление зарегистрированных пользователей
        * Разрешить регистрацию нескольких пользователей с одного IP
        * Ограничение на добавление комментариев на сайте после регистрации
        * Автоматический запрет комментирования новости по истечении указанного срока
        * Защита от флуда
        и другие.
    
    Внимание! Регистр ссылки должен быть маленький, иначе ссылка не будет работать.
    Не правильно: NuLLedCc
    Правильно: nulledcc
     
    Saigo нравится это.
  2. AzazelloBiz

    AzazelloBiz

    Регистр.:
    20 авг 2011
    Сообщения:
    334
    Симпатии:
    164
    на каких версиях будет работать данный хак? Интересует 9.7-9.8
     
  3. fumofuuu

    fumofuuu

    Регистр.:
    24 сен 2011
    Сообщения:
    280
    Симпатии:
    125
    работает во всех версиях от 9.x ( насчёт 8.x не уверен, но должно)
     
    AzazelloBiz нравится это.