Перейти к публикации

Изменяем адрес странички регистрации | Временно избавляемся от массовой регистрации ботов и спама


Рекомендованные сообщения

Изменяем адрес странички регистрации | Временно избавляемся от массовой регистрации ботов и спама

Для того, чтобы полностью и правильно поменять адрес странички регистрации с, например, _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']}" );[/code]



[spoiler][color=#ff8c00][b]Было[/b][/color]:

$tpl->set( '{registration-link}', $PHP_SELF . "?do=[color=#ff0000][b]register[/b][/color]" );



[color=#ff8c00][b]Стало[/b][/color]:

$tpl->set( '{registration-link}', $PHP_SELF . "?do=[color=#ff0000][b]{$config['register']}[/b][/color]" );

[/spoiler]






[color=#0000ff][b]3[/b][/color]) В файле /engine/[color=#ff0000][b]engine.php[/b][/color] найти строчки:

case "register" :

и заменить на:

case $config['register'] :
elseif ($do == 'register') $nam_e = $lang['title_register'];

и заменить на:

elseif ($do == $config['register']) $nam_e = $lang['title_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'] ) {

Было: 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>" );

Было: $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&amp;doaction=validating&amp;id=" . $idlink, $row['template'] );

и заменить на:

$row['template'] = str_replace( "{%validationlink%}", $config['http_home_url'] . "index.php?do={$config['register']}&amp;doaction=validating&amp;id=" . $idlink, $row['template'] );

Было: $row['template'] = str_replace( "{%validationlink%}", $config['http_home_url'] . "index.php?do=register&amp;doaction=validating&amp;id=" . $idlink, $row['template'] ); Стало: $row['template'] = str_replace( "{%validationlink%}", $config['http_home_url'] . "index.php?do={$config['register']}&amp;doaction=validating&amp;id=" . $idlink, $row['template'] );

<input name=\"do\" type=\"hidden\" id=\"do\" value=\"register\" />

и заменить на:

<input name=\"do\" type=\"hidden\" id=\"do\" value=\"{$config['register']}\" />

Было: <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'] . " <a href=\"" . $config['http_home_url'] . "index.php?do=register&amp;doaction=validating&amp;step=2&amp;id=" . rawurlencode( $_REQUEST['id'] ) . "\">" . $lang['reg_next'] . "</a>" );

и заменить на:

msgbox( $lang['all_info'], $lang['confirm_ok'] . " <a href=\"" . $config['http_home_url'] . "index.php?do={$config['register']}&amp;doaction=validating&amp;step=2&amp;id=" . rawurlencode( $_REQUEST['id'] ) . "\">" . $lang['reg_next'] . "</a>" );

Было: msgbox( $lang['all_info'], $lang['confirm_ok'] . " <a href="" . $config['http_home_url'] . "index.php?do=register&amp;doaction=validating&amp;step=2&amp;id=" . rawurlencode( $_REQUEST['id'] ) . "">" . $lang['reg_next'] . "</a>" ); Стало: msgbox( $lang['all_info'], $lang['confirm_ok'] . " <a href="" . $config['http_home_url'] . "index.php?do={$config['register']}&amp;doaction=validating&amp;step=2&amp;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']}\" />

Было:

<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, то обязательно создайте для этой капчи персональный публичный и приватный ключи.

Сгенерировать ключи для своего сайта можно тут: http://www.google.com/recaptcha

После того, как ключи сгенерированы, их надо вставить в админке DLE в разделе "Настройка системы/Настройки безопасности скрипта".

II) Обязательно используйте возможность стандартного модуля DLE - Вопросы и ответы для защиты от спама ( _http://ваш_домен/admin.php?mod=question ).

III) Включайте возможность комментирования новостей только зарегистрированным пользователям. Или вставляйте на свой сайт комментирование от Вконтакте и Facebook.

IV) Используйте стандартные функции DLE:

  1. Отправлять комментарии на модерацию
  2. Максимальное количество комментариев в сутки
  3. Автоматическое удаление зарегистрированных пользователей
  4. Разрешить регистрацию нескольких пользователей с одного IP
  5. Ограничение на добавление комментариев на сайте после регистрации
  6. Автоматический запрет комментирования новости по истечении указанного срока
  7. Защита от флуда
  8. и другие

Пожалуйста, укажите в комментариях кто какие методы борьбы со спамом и массовой регистрацией использует на своих сайтах

:rolleyes:

Ссылка на сообщение
Поделиться на других сайтах

Прикол еще в том, что зачастую спамеры регятся не для того, чтобы что-либо коментить, а просто чтобы достать!

Ссылка на сообщение
Поделиться на других сайтах

Пришлось выложить всю новость в текстовый файл, так как парсер форума портит код.

Вот тут всё верно: http://i.zeos.in/new_url_of_registration_page.txt

Ссылка на сообщение
Поделиться на других сайтах

Спасибо Zeos. По идее эту бы фичу в движок 9.8 установить, чтобы для каждого сайта была индивидуальная страница для регистрации, точно также как это делается с админ панелью. Тогда бы у Хрумероводов не было возможности автоматической одновременной регистрации на многих сайтах dle.

Изменено пользователем dakk
Ссылка на сообщение
Поделиться на других сайтах

dakk, если это появится в DLE по умолчанию, то просто переделают эти спамилки и всё-равно можно будет обходить этот способ :)

Дайте знать, помог ли Вам этот способ от массовой регистрации ботов? :rolleyes:

Ссылка на сообщение
Поделиться на других сайтах

dakk, если это появится в DLE по умолчанию, то просто переделают эти спамилки и всё-равно можно будет обходить этот способ :)

Дайте знать, помог ли Вам этот способ от массовой регистрации ботов? :rolleyes:

Зарегистрированных пользователей стало меньше, а значит и спамеров соответственно, хотя комментариев не так уж много, регистрируются наверное больше, чтобы оставлять ссылки в профиле, а я убрал там ненужные поля так, что их ждет неприятный сюрприз. Спасибо еще раз

Изменено пользователем dakk
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
  • 2 недели спустя...

Интересно, если добавить в DLE генерирование случайной ссылки на страницу с регистрацией, это спасёт от ботов? Чтоб при нажатии на "Зарегистрироваться" генерировалась случайная ссылка и всегда разная.

P.S. То, что написал ZEOS.IN в первом сообщении, конечно хорошо, но вносить все эти изменения при каждом обновлении движка- это уж перебор :)

Изменено пользователем Mek
Ссылка на сообщение
Поделиться на других сайтах

спасиюо изменил ) сделал как вы и написали. польза на лицо , на тестовом домене (который никто не знает) наконец то прекратилась рега . значит работает

Ссылка на сообщение
Поделиться на других сайтах

Mek, если сделать это стандартно в DLE, то когда переделают спам-программы - это уже не спасёт.

Как уже говорил Владимир, защита должна быть уникальна для каждого сайта. То-есть, каждый владелец сайта должен придумать какую-то хитрую защиту.

Mek, лучше вносить те изменения, которые в третьем сообщении: http://forum.dle-news.ru/index.php?showtopic=62184&view=findpost&p=309553 , так как парсер форума немного испортил код.

Ссылка на сообщение
Поделиться на других сайтах

Доброго времени суток. Извиняюсь, новичок в этом деле. 7 пункт не получается.

Хочу узнать правильно ли я делаю, строку в файле шаблона


<li class="icon-reg level-2"><a href="/?do=register">Регистрация</a></li>

менять на

<li class="icon-reg level-2"><a href="/{registration-link}">Регистрация</a></li>

? И что нужно сделать с тегом [registration-link] в файле login.tpl ? Все пункты вроде правильно сделал - если в адресной строке вбить ручками mysite.ru/?do=my_reg то всё нормально - перехожу на страницу регистрации. И где нужно использовать тег [registration-link] в файле login.tpl? В файле login.tpl у меня вот так

<a href="{registration-link}">Регистрация</a>

Ссылка на сообщение
Поделиться на других сайтах

Все пункты вроде правильно сделал - если в адресной строке вбить ручками mysite.ru/?do=my_reg

Вам надо просто в Вашем шаблоне прописать ссылку на свою новую страничку регистрации. Либо выводить ссылку на регистрацию в файле login.tpl тегом {registration-link}

И где нужно использовать тег [registration-link] в файле login.tpl?

Не [registration-link], а {registration-link} - стандартный тег DLE

В login.tpl у Вас прописано всё верно.

Ссылка на сообщение
Поделиться на других сайтах

есть сайт с посещалкой в районе 60к, ранее ежедневно регилось десятки левых спаммерских аккаунтов.

боролся блокировкой айпишников и маской емейлов типа *@levoemilo.com.

в принципе, подавляющее большинство (я бы сказал процентов 60-70) спама идет из китая 112.*, 175.*

по сути мне посетители из китая не особо нужны, но тем не менее решил их не блочить всех, тем более что другая часть все равно бы регилась

поэтому, поставил вчера вечером данный хак + сделал небольшие личные модификации в register.php

на текущий момент за период чуть менее суток - только регистрации нормальных людей

понаблюдаю за ситуацией и через пару дней отпишу подробнее!

Сергею респекты и уважуха!

Изменено пользователем prikindel
Ссылка на сообщение
Поделиться на других сайтах

dakk, если это появится в DLE по умолчанию, то просто переделают эти спамилки и всё-равно можно будет обходить этот способ :)

Дайте знать, помог ли Вам этот способ от массовой регистрации ботов? :rolleyes:

Мне помогло, боты больше не беспокоят :P Спасибо большое автору....

:huh:

Ссылка на сообщение
Поделиться на других сайтах

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

Ссылка на сообщение
Поделиться на других сайтах

отписываюсь, как и обещал: прошло больше трех суток, ботов нет.

только в логах вижу тщетные обращения к ?do=register :)

несколько раз всплывали спам комменты от зарегистрировавшихся ранее, но волшебная кнопка "спам" спасает)

Ссылка на сообщение
Поделиться на других сайтах

только в логах вижу тщетные обращения к ?do=register :)

Я вот думаю, может после такого обращения ip адресок сразу проверять в базе спамеров и банить.

У меня после этого открывают попеременно 2 последние статьи раз 5 в цикле и получая пустую страницу сваливают.

Ссылка на сообщение
Поделиться на других сайтах

Wanderers,

примерно та же фигня. последним двум новостям накручивают под +10к просмотров)))

насчет проверять и банить - можно, но банить на уровне iptables, в бд нет смысла заносить. лишние запросы к базе.

Ссылка на сообщение
Поделиться на других сайтах

Wanderers,

примерно та же фигня. последним двум новостям накручивают под +10к просмотров)))

насчет проверять и банить - можно, но банить на уровне iptables, в бд нет смысла заносить. лишние запросы к базе.

На небольших проектах все решаемо, и в таблицу писать и на stopforumspam по api слазить вполне можно, а вот с большим кол-вом посещений уже надо смотреть что делать и пробовать варианты.

Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...

После установки данного ХАКА, если можно так назвать, у меня появилась проблема

Если включить расширенную схему регистрации, то есть через подтверждение по почте, то пользователю после предварительной регистрации по почте приходит письмо со строкой для активации, которая почему то не активирует, а перекидывает его снова на страницу регистрации, помогите пожалуйста.

Я уж было обрадовался, думал от ботов избавился, тишина в регистратуре, а оказывается что у меня и юзеры не смогли зарегаться.

Временно отключил расширенную регистрацию, но это не выход, нужно как то исправить, помогите пожалуйста!

Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...

svadbavsurgute,

криво вставил код.

все там отлично работает с расширенной регистрацией

Ссылка на сообщение
Поделиться на других сайтах

у меня впринципе не встал данный код..

вверху страницы выскакивает теперь


if ( $metatags['header_title'] ) $metatags['title'] = stripslashes($metatags['header_title'].$page_extra);

и шрифты увеличились.

все перепроверил, ставил по инструкции.

м.б. на ДЛЕ 9.8. что-то подругому надо ставить

Ссылка на сообщение
Поделиться на других сайтах

на 9.8. все прекрасно работает, я же писал, что на нескольких сайтах установил и протестировал в течение 2х месяцев

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

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...