Если у вас есть блог, вы наверняка не раз и не два получали спаммерские комментарии к своим записям. Для борьбы с этим новым злом придуманы разнообразные методы — блэклисты, статические или поддерживаемые динамически на отдельном сервере, антиспаммерские алгоритмы, основанные, например, на методе Бейеса, капчи и генераторы уникального кода, так или иначе осложняющие или делающие невозможным прямую передачу формы обработчику. Я их перепробовал много — спасибо разработчику плагина CCode&TCode, благодаря которому в этот блог практически не проходят комментарии от спаммеров. Для большинства блогов этих методов вполне достаточно, чтобы гарантированно защититься от спама. Но не для всех.
К сожалению, для этого блога, число записей в котором уже перевалило за 5 тысяч, более актуальной становится задача не защиты от спама как такового, а защиты от ботов, которые создают очень немаленькую нагрузку на сервер, пытаясь пропихнуть хоть что-то в этот блог. Приведу только один факт — в среднем в сутки в этом блоге к скрипту комментариев пытаются обратиться до 30 тысяч раз. Сопоставьте это с тем, что скрипт перловый — если бы этот блог хостился на обычном хостинге, что естественно для сайта с посещаемостью до пары тысяч человек в сутки, меня бы давно попросили с него из-за нагрузки на сервер. Переход на FastCGI, конечно, облегчил ситуацию, но ненамного.
В общем, естественным ходом оказалось перейти к блокированию спаммеров не плагинами к движку, а на более низком уровне. Алгоритм, пока реализуемый в основном вручную, дает прекрасные результаты и частично применим для любого блоггера. Полностью повторить его смогут, к сожалению, только те, у кого имеется полный доступ к администрированию сервера, на котором размещен блог.
Как это работает — я захожу в директорию, где хранятся лог-файлы Апача и даю в консоли команду: