[antispam] Еще один метод борьбы со спамом.

Статус
В этой теме нельзя размещать новые ответы.

Android

Хранитель порядка
Регистрация
9 Июн 2006
Сообщения
680
Реакции
627
Ну что сказать проходят боты уже и модифицированую капчу и дополнительные поля, хотя мод с вопросом отсекает большую часть спам-ботов.

Вообщем нашел очень интересную штуку, база айпишников и мыл спамеров:
Для просмотра ссылки Войди или Зарегистрируйся

У них есть свой APIs, суть сводится к тому что Вы можете встроить проверку по ip, мылу или никнейму на приналежность к спамерской сети, т.е. отсеивание идет во время регистрации. Я проверил нескольких спамеров которые прошли защиту форума, они были в базе stopforumspam. Думаю комбинация рекапчи и скрипта проверки ip и mail от stopforumspam должен свести спамерские атаки на нет =).

Проверка может выполнятся так:
* Для просмотра ссылки Войди или Зарегистрируйся
* Для просмотра ссылки Войди или Зарегистрируйся
* Для просмотра ссылки Войди или Зарегистрируйся

А можно использовать скрипт чтобы встроить в регистрацию на форуме:
Для просмотра ссылки Войди или Зарегистрируйся

PHP:
function checkSpambots($mail,$ip,$name){
    $spambot = false;
    //put the main domains in the array
    $main_domains = array('mail.ru','bigmir.net');
    //check the e-mail adress
    $xml_string = file_get_contents('http://www.stopforumspam.com/api?email='.$mail);
    $xml = new SimpleXMLElement($xml_string);
    if($xml->appears == 'yes'){
        $spambot = true;
    }elseif($spambot != true){
        //e-mail not found in the database, now check the ip
        $xml_string = file_get_contents('http://www.stopforumspam.com/api?ip='.$ip);
        $xml = new SimpleXMLElement($xml_string);
        if($xml->appears == 'yes'){
            $spambot = true;
        }
    }
    //check the main domains if there is still no spammer found, you can add more if you want in the $main_domains array
    if($spambot != true){
        for($i = 0; $i < count($main_domains); $i++){
            if(ereg($main_domains[$i],$mail) == 1){
                $spambot = true;
            }
        }
    }
    // create an .txt file with the info of the spambot, if this one already exists, increase its amount of try's
    if($spambot == true){
        if(file_exists('spambots/'.$mail.'.txt')){
            $spambot_old_info = file_get_contents('spambots/'.$mail.'.txt');
            $spambot_old_info = explode(',',$spambot_old_info);
            $spambot_old_info[2] = $spambot_old_info[2]+1;
            $spambot_old_info = implode(',',$spambot_old_info);
            file_put_contents('spambots/'.$mail.'.txt',$spambot_old_info);
        }else{
            $spambot_info = $ip.','.$name.',1';
            file_put_contents('spambots/'.$mail.'.txt',$spambot_info);
        }
    }
    return $spambot;
}
 
хм... Не могли бы вы уточнить как этот скрипт лучше интегрировать. А т опроснулся утром, захожу на форум а там 40 тем с порно!
 
[MOD] IPB StopForumSpam.com
Автор: Android (13.11.2008)
Для: IPB v2.3.X
Редактировать: 1 файл
Скорость установки: 1 минута

Особенности:
на хостинге должны быть открыты соксы (функция file_get_contents), на многих халявных хостингах они закрыты.

Описание:
Это небольшая модификация которая позволит Вам проверять всех пользователей которые регистрируются по базе stopforumspam.com на принадлежность к сети спам-ботов и отсеивать таким образом спамеров еще на этапе регистрации. Мод очень эффективен и никак не отягощает процесс регистрации пользователей!

Открываем файл:
sources/action_public/register.php
В самом конце файла, до:
PHP:
}

?>
вставяем код:
PHP:
    //-----------------------------------------
    // Проверка по базе www.stopforumspam.com
    // для отсеивания спамботов. 
    // Входящие данные: $mail - почтовый адрес, $ip - айпишник
    // Возвращает false - если это не спам-бот, true - если mail или ip найдены в базе спамеров (т.е. это спам-бот)
    // Автор мода: Android, обсуждение тут: http://www.nulled.ws/showthread.php?t=86970
    //-----------------------------------------
    function isSpambots($mail,$ip){
            $spambot = false;
            //check the e-mail adress
            $xml_string = file_get_contents('http://www.stopforumspam.com/api?email='.$mail);
            $xml = new SimpleXMLElement($xml_string);
            if($xml->appears == 'yes'){
                $spambot = true;
            }elseif($spambot != true){
            //e-mail not found in the database, now check the ip
                $xml_string = file_get_contents('http://www.stopforumspam.com/api?ip='.$ip);
                $xml = new SimpleXMLElement($xml_string);
                if($xml->appears == 'yes'){
                        $spambot = true;
                }
            }
            return $spambot;
    }

потом находим в функции create_account() (примерно 1990-2000 строка) следующий код:

PHP:
        //-----------------------------------------
        // Check the reg_code
        //-----------------------------------------
и до него вставляем код:
PHP:
        //-----------------------------------------
        // Не спамер ли это? (проверка по базе stopforumspam.com)
        //-----------------------------------------
        $stopforumspam = $this->isSpambots($in_email,$_SERVER["REMOTE_ADDR"]);
        if ( $stopforumspam )
        {
            $form_errors['email'][$this->ipsclass->lang['reg_error_email_ban']] = "Простите но Вы занесены в базу спамеров stopforumspam.com и не можете продолжить регистрацию. Если это недоразумение обратитесь к администрации форума.";
        }
Вот и все, теперь у вас есть хорошая проверка по базе мыл и айпишников спамеров, которая своевременно пополняется ;-).

Теперь для проверки работоспособности попробуйте зарегистрировать акк на какоенить спамерское мыло, например на это sakyrastar@gmail.com (или выберите любое тут Для просмотра ссылки Войди или Зарегистрируйся), вам должно выдаться предупреждение мол:
Простите но Вы занесены в базу спамеров stopforumspam.com и не можете продолжить регистрацию. Если это недоразумение обратитесь к администрации форума.

З.Ы. Даную проверку легко можно встроить в любой скрипт, на сайте Для просмотра ссылки Войди или Зарегистрируйся есть примеры и описания АПИ...

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