• Автор:

    Flesha
  • Добавлено:

    мар 16, 2013
  • Комментариев:

    1
  • Просмотров:

    2809

Отсекаем спам-ботов на стадии регистрации

Отсекаем спам-ботов на стадии регистрации

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

Установка:
1. Скачиваем библиотеку StopForumSpam-PHP-Lib. Распаковываем и файл stopforumspam.php копируем в папку engine/classes/.

2. В файле engine/modules/register.php, в конце ищем строку:
$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );
$id = $db->insert_id();


Вместо неё вставляем:
require_once ENGINE_DIR . '/classes/stopforumspam.php';
$sfs = new StopForumSpam();
$_IP = $db->safesql( $_SERVER['REMOTE_ADDR'] );
$args = array('email' => $email, 'ip' => $_IP);
$spamcheck = $sfs->is_spammer( $args );
if($spamcheck || $name==''){

/*
//Здесь пишем в лог (Если он есть)
$db->query( "INSERT INTO " . USERPREFIX . "_spamlog (name, email, ip, mess, spamer) VALUES ('$name', '$email', '" . $_IP . "', 'Спамер-попытка зарегистрироваться!', 'reg')" );
*/
//И баним по IP
$db->query( "INSERT INTO " . USERPREFIX . "_banned (users_id, descr, date, days, ip) VALUES ('', 'Спамер-попытка зарегистрироваться!', '', '', '" . $_IP . "')" );

header( "Location: index.php");
die();
}else{
$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );
$id = $db->insert_id();
}


Готово!

Версия DLE: 9.x
Автор: mediaent.org
Вернуться

Комментарии:


  1. skypi → 25 апреля 2013 09:58
    хак работает, но кривой до ужаса. После установки (dle 9.8), Не работает счётчик зарегестрированных пользователей в админ панели. При регистрации где пользователю предлагается заполнить дополнительные поля, вместо букв вопросительные знаки. Лучше его тогда не ставить, потому как исправлять, это всё равно что заново его создавать
    P.S. Всё вроде нормально. Это у меня руки кривые либо Adobe Dreamweaver кривой при создании PHP. Воспользовался Notepad, и всё встало на места :)
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.