• 380 (93) 978-77-37
  • 380 (93) 558-66-35

Создание и продвижение сайтов в Одессе

Умение адаптироваться - ключевой принцип существования живых существ! Умение правильно адаптировать ваш бизнес - главная наша задача!

Мы предлагаем комплексный подход в решении задач, стоящих перед нашими партнёрами: от создания сайта до продвижения сайтов в поисковиках (SEO), организация контекстной рекламы, а так же создание и продвижение сообществ в социальных сетях (SMM). Большое внимание мы, также, обращаем на юзабилити сайтов т.к. это способствует повышению продаж, осуществлённых с помощью сайта.

Навигация

Анти бот с баном для dle 8.5

Защита реализована следующим образом: мы переименовываем input, в который юзеру нужно записать свой логин при регистрации. При этом input со старым именем сохраняем в коде, но делаем скрытым при помощи CSS. При этом всех, кто будет отправлять какие-либо данные в input со старым именем, мы будем банить. Простые юзеры не видят его, и вводят логин в новое поле, а боты, как правило, не заморачиваются с парсингом стилей сайта, тупо отправляя POST-запрос с именами полей, характерными для DLE.

Предположим, новое поле будет называться urdgdtvfwecw

Открываем engine\modules\register.php
Находим:
$password1 = $_POST[‘password1’];
$password2 = $_POST[‘password2’];

Перед этими строками добавляем код, отвечающий за посылку нахуй всех, кто отправляет данные в input со старым именем:
if(!empty($_POST[‘name’])) {
$db->query( «INSERT INTO » . USERPREFIX . «_banned (descr, date, days, ip) values (‘Spambot protection’, ‘».(time()+(60*60*24*30)).»‘, ‘1’, ‘{$_IP}’)» );
die( «Hacking attempt!» );
}

А чуть ниже этих строк находим имя input’а
$name = $db->safesql( $parse->process( htmlspecialchars( trim( $_POST[‘name’] ), ENT_COMPAT, $config[‘charset’] ) ) );
и меняем его на новое:
$name = $db->safesql( $parse->process( htmlspecialchars( trim( $_POST[‘urdgdtvfwecw’] ), ENT_COMPAT, $config[‘charset’] ) ) );

Теперь в этом же файле находим javascript, отвечающий за проверку логина:
if(document.forms.registration.name.value == ») {

DLEalert(‘{$lang[‘reg_err_30′]}’, dle_info);return false;

}
и меняем имя поля. Должно получиться так: document.forms.registration.urdgdtvfwecw.value

Теперь открываем engine\classes\js\dle_js.js (по умолчанию он упакован, поэтому перед редактированием достаем неупакованный из дистрибутива DLE)
Находим функцию CheckLogin(), и меняем имя поля:
var name = document.getElementById(‘name’).value;
Должно получиться так:
var name = document.getElementById(‘urdgdtvfwecw’).value;

Теперь открываем файл шаблона registration.tpl (показано на примере шаблона Default, в других шаблонах код будет отличаться)
Находим поле для ввода логина:
<input type=»text» name=»name» id=’name’ style=»width:175px; margin-right: 6px;» class=»f_input» /><input class=»bbcodes» style=»height: 22px; font-size: 11px;» title=»Проверить доступность логина для регистрации» onclick=»CheckLogin(); return false;» type=»button» value=»Проверить имя» />
Теперь добавляем поле с новым именем. При этом старое поле остается в коде, но делается скрытым с помощью таблицы стилей (теперь оно будет «ловушкой» для ботов):
<input type=»text» name=»name» id=’name’ style=»width:175px; margin-right: 6px;» class=»f_input reglogin» /><input type=»text» name=»urdgdtvfwecw» id=’urdgdtvfwecw’ style=»width:175px; margin-right: 6px;» class=»f_input» /><input class=»bbcodes» style=»height: 22px; font-size: 11px;» title=»Проверить доступность логина для регистрации» onclick=»CheckLogin(); return false;» type=»button» value=»Проверить имя» />

Как видим, к старому input’у добавился стиль reglogin. Добавляем в любой CSSник шаблона код, скрывающий его:
.reglogin {
display: none !important;
}

После сохранения всех изменений обязательно проверяем работоспособность регистрации на сайте.

Вроде ничего не забыл. Но если оно будет работать как говно, это значит что я таки что-то забыл 😀