API Скрипт остановки спам ботов

Автор Gnostis, 27 апреля 2009, 17:25:38

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Gnostis

Судя по логам ко мне на форум постоянно стали наведываться спам боты. Кроме мусора в базе типа:
Цитироватьhttp://мой-url/index.php?action=login2
Запрашиваемый идентификатор не возвращает правильную информацию.
От них нет. Я тут сообразил простое решение данного вопроса на базе stop forum spam API
Ставить на каждую страницу мне кажется смысла нет, достаточно поставить на страницу регистрации.


<?php$ip=getenv ("REMOTE_ADDR"); /// $ip = ($_SERVER['HTTP_X_FORWARDED_FOR'] == "" ? $_SERVER['REMOTE_ADDR'] : $_SERVER['HTTP_X_FORWARDED_FOR']); $rss="http://www.stopforumspam.com/api?ip=".$ip;$xmlstr = @file_get_contents($rss);//if ( $xmlstr===false ) die('Error connect to RSS: '.$rss);$xml = new SimpleXMLElement($xmlstr);//if ( $xml===false ) die('Error parse RSS: '.$rss);$xml = @simplexml_load_file($rss);//if ( $xml===false ) die('Error parse RSS: '.$rss);foreach ( $xml->xpath('//appears') as $item ) if ($item=='yes') 	die('You are Spam bot!!! Bay!');?>



P.s. код сырой, плохо оттестированный.  :) требует PHP 5+

uniqum

Ну и как? помогло?
Просто у меня с такой ошибкой юзер с логином на кирилице не может зайти... вернее после 765 попытки заходит.

Gnostis

Давно. Правда сейчас использую плагин StopForumSpam который работает по тому же принципу, но по нескольким параметрам.