
Защита от спама не дает покоя многим, представляем на dle9.com из рубрики
хаки для дле, замечательное решение
хак DLE от массовой регистрации ботов и спама, с помощью определенных манипуляций в движке, вы сможете остановить регистрацию программным способом. Взят с официального сайта продукции
все для dle DataLife Engine. Проделав по данной инструкции установку, Вам удастся избавится от массовой регистрации ботов и спама на Вашем сайте.
Все же, если Ваш сайт постоянно перегружают и создают проблемы, то защиту от DDoS атаки лучше всего доверить профессионалам, крутым сервис-проектом в этой области является https://antiddos.biz, предлагающий эффективную
защиту от ddos атак серверам с разными назначениями, high-load проектам, хостингам и т.д. Помимо мощных серверов, есть услуга для простых сайтов с мощной защитой от DDoS атак, обо всем этом можно прочитать подробно пройдя по ссылке выше.
Хак DLE
Защита от массовой регистрации ботов и спама, заключается в том, чтобы полностью и без ошибок изменить адрес странички регистрации, тем самым сбить с толку программы генерирующие сообщения. К примеру:
http://домен/?do=register
можно поменять на
http://домен/?do=my_reg,
Для этого выполните инструкцию описанную здесь
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']}" /> <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']}" /> <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} (
подробнее: ) для вывода нашей новой ссылки для регистрации.
Рекомендации:
I)
Если вы на своем сайте используете reCAPTCHA, то обязательно создайте для этой капчи персональный публичный и приватный ключи.
Сгенерировать ключи для своего сайта можно
тут:
После того, как ключи сгенерированы, их надо вставить в админке DLE в разделе "Настройка системы/Настройки безопасности скрипта".
II)
Обязательно используйте возможность стандартного модуля DLE - Вопросы и ответы для защиты от спама ( _http://ваш_домен/admin.php?mod=question ).
III)
Включайте возможность комментирования новостей только зарегистрированным пользователям. Или вставляйте на свой сайт комментирование от Вконтакте и Facebook.
IV)
Используйте стандартные функции DLE:
* Отправлять комментарии на модерацию
* Максимальное количество комментариев в сутки
* Автоматическое удаление зарегистрированных пользователей
* Разрешить регистрацию нескольких пользователей с одного IP
* Ограничение на добавление комментариев на сайте после регистрации
* Автоматический запрет комментирования новости по истечении указанного срока
* Защита от флуда
и другие.
Вариант предложенный автором
Aison добавлен в новость 18.08.2016
Изменяем адрес странички регистрации | Временно избавляемся от массовой регистрации ботов и спама
Для того, чтобы полностью и правильно поменять адрес странички регистрации с, например, http://домен/?do=register на http://домен/?do=my_reg, необходимо произвести такие изменения в файлах DLE:
1) Открыть файл: /engine/data/config.php и в массив $config в самом низу добавить: 'register' => "registrierung",
Было
...
'version_id' => "11.1",
);
?>
Стало
...
'version_id' => "11.1",
'register' => "registrierung",
);
?>
Вместо слова "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="butdef butdefcolor butnormal" value="{$lang['rules_accept']}" /> <input type="button" class="butdef butdefcolor butnormal" 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="butdef butdefcolor butnormal" value="{$lang['rules_accept']}" /> <input type="button" class="butdef butdefcolor butnormal" 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%}", $slink . "index.php?do=register&doaction=validating&id=" . $idlink, $row['template'] );
и заменить на:
$row['template'] = str_replace( "{%validationlink%}", $slink . "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
* Ограничение на добавление комментариев на сайте после регистрации
* Автоматический запрет комментирования новости по истечении указанного срока
* Защита от флуда
и другие.
Автор: ZEOS
Хак для
DataLife Engine Защита от массовой регистрации ботов и спама
Кому нужна админка: by vitnet
Открываем engine/inc/options.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']}" ) );
Ниже прописываем:
showRow( "Ссылка на страницу регистрации", "Укажите желаемое имя страницы регистрации", "<input class="edit bk" type=text style="text-align: center;" name='save_con[register]' value="{$config['register']}" size=10>" );
Вся сила в защите от ботов в уникальности, чем уникальней, тем лучше будет защита от Хруммер, нужно одну капчу, но уникальную.
Для DLE 10.x и для DLE 11.x в одном архиве
Hak-DLE-NO-Spam.rar [23,69 Kb] (cкачиваний: 65)