Блогоспамеры - 2

В продолжение истории про спам в комментариях, - как выяснилось, спам добавляет в комментарии не нормальный браузер, а некая программа, возможно троян?

Логи апача эту гадость показывают так:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Crazy Browser 2.0.0 Beta 1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
Придумал следующий вариант защиты:

  • Устанавливаем переменную окружения, если отсутствует реферер или реферер не с моего сайта

  • Устанавливаем другую переменную, если UserAgent содержит Crazy Browser

  • Запрещаем в htaccess доступ к странице комментирования, если установлена переменная в Env



В конфиге апача это выглядит таким образом:

SetEnvIf Remote_Host Remote_Host <здесь ip> spam_source
SetEnvIf Remote_Host Remote_Host <здесь другой ip> spam_source
SetEnvIf User-Agent "Crazy\s+Browser" spam_source
SetEnvIf Referer !spam\.sended2\.me other_site_referral


Order Deny,Allow
Deny from env=spam_source
Deny from env=other_site_referral
Allow from all



Не самое изящное решение,- разрешён только в httpd.conf (или инклудах),- вряд-ли на массовом хостинге дадут самостоятельно редактировать конфиг своего виртуального хоста и далеко не везде это сделают по запросу. Возможно, самым адекватным решением был бы плагин, который умеет следующее:

  • вести базу адресов, с которых спамят комментарии

  • скрывать для этих адресов форму коментирования

  • не сохранять комментарии, если пришли данные через POST

  • обмениваться с доверенными блогами базой спамерских ip-шников



Вообщем, что-то вроде Parasite Eliminator, или даже DNSBL,- но для блогов. Ведь количество рекламируемых говноресурсов потенциально неограниченно, а исходящие ip-адреса у блогоспамеров одни и те же, и постоянно их менять,- непростое занятие.