MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Как на форуме PunBB 1.4.4 самостоятельно защититься от спама с помощью запроса на stopforumspam.com
07.02.2017
09:32
Текстовые метки: stopforumspam.com, спам, проверка email, антиспам, PunBB, форум, php, блокировка, защита, спаммеры, spam, spammers
Раздел: Компьютер - Программирование - Язык PHP - PunBB

Инструментарий


Сайт stopforumspam.com - это общественный проект, предоставляющий сведения об E-mail и IP-адресах с которых осуществляются спамерские атаки на форумы. База простоянно обновляется и актуализируется. Имеется API для автоматизированных запросов. Использование бесплатное, но авторы проекта охотно принимают донаты.


Пример запроса к StopForumSpam для проверки email:


http://www.stopforumspam.com/api?&email=olya-komosko@mail.ru&f=serial


Ответ будет дан в виде сериализованного ассоциативного PHP-массива:


a:2:{

s:7:"success"; i:1;

s:5:"email"; a:4:{

s:8:"lastseen";s:19:"2017-02-06 16:29:28";

s:9:"frequency";i:22;

s:7:"appears";i:1;

s:10:"confidence";d:83.019999999999996;

}

}


Тут невооруженным взглядом видно, что в ответе параметр appears (появление в базе спамеров) равен 1, а параметр confidence (уверенность) равен 83%.


Можно запросить информацию и в формате json, причем можно указать не только e-mail, но и другие параметры (например, имя пользователя, IP):


http://www.stopforumspam.com/api?
&
username=Xrumervj
&
email=lp982db@buyanessaycheape.top
&
ip=194.44.92.140
&f=json


Ответ будет примерно такой:


{

"success": 1,

"username": {

"frequency": 0,

"appears": 0

},

"email": {

"frequency": 0,

"appears": 0

},

"ip": {

"lastseen": "2017-03-02 20:49:32",

"frequency": 41,

"appears": 1,

"confidence": 90.11,

"delegated": "ua",

"country": "ua",

"asn": 3255

}

}


Здесь видно, что по имени пользователя и e-mail информации в базе StopForumSpam нет (т. к. это еще новые нагенерированные спамерами имя и e-mail), но по IP можно увидеть, что с данного адреса спам шлется регулярно.


Продробнее о формате - на странице описания API: http://www.stopforumspam.com/usage


Так же можно получать ответы в виде XML и Json.


Для блокировки регистрации спамеров можно воспользоваться двумя решениями.



Решение 1


На странице http://www.stopforumspam.com/contributions есть готовые плагины для всех популярных форумов. Там же есть плагины для PunBB, PhpBB, FluxBB, MyBB, YaBB, плагины для фреймверков DJango, Symphony, для системы блогов WordPress и для прочих платформ.


Линк на тему с поддержкой плагина StopForumSpam.com Antispam для BunBB на официальном форуме:


http://punbb.informer.com/forums/topic/23348/extension-release-stopforumspamcom-antispam/



Решение 2


Для PunBB 1.4.4 можно сделать следующую правку. Необходимо найти файл include/email.php, и добавить в него функцию:


function is_spam_email($email)

{

if(strlen(trim($email))==0)

return false;


try

{

$data = unserialize(file_get_contents('http://www.stopforumspam.com/api?&email='.urlencode($email).'&f=serial'));


// Если сервис StopForumSpam не отвечает

if($data===false)

return false;


// Если в ответе нет нужных полей

if(!(isset($data['email']['appears']) and isset($data['email']['confidence'])))

return false;


if($data['email']['appears']!=0 and $data['email']['confidence']>=70)

return true; // Email в базе спаммеров

else

return false;

}

catch (Exception $e)

{

return false; // Попытка запроса была неудачной

}

}


Затем надо найти файл register.php и добавить в него код в районе 152-162 строки:


if(is_spam_email($email1))

$errors[] = 'Spam detected';


После этих изменений, если попробовать зарегистрироваться с указанием спаммеровского E-mail, на форме регистрации будет появляться сообщение:



Внимание! Следующие проблемы препятствуют регистрации:

  • Spam detected


Эту защиту можно применять в любых проектах, в которых происходит размещение пользовательского контента на страницах сайта.


Реальность показывает, что спамеры генерируют e-mail адреса с такой скоростью, что проверять только e-mail зачастую недостаточно - эти e-mail появляются в базе StopForumSpam с задержкой, и спамеры успевают зарегистрироваться и наплодить на форумах рекламных сообщений. Поэтому рекомендуется так же проверять и IP (как это сделать, в принципе, понятно из примеров выше). Проверку по IP спамеры просто так обойти не могут, во всяком случае до момента полного внедрения IPv6 во всей сети Интернет.



← Содержание ...
 
MyTetra Share v.0.35
Яндекс индекс цитирования