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 который работает по тому же принципу, но по нескольким параметрам.