Путь к статье: Главная » Продвижение блога

Когда у блога появляются первые пузомерки и начинает расти трафик – то и начинает расти уровень спама. Сначала можно ещё руками чистить, потом уже его становится столько, что просто не хватает времени, чтобы отфильтровать весь шлак, от нормальных комментариев. И назревает актуальный вопрос – как защитить блог от спама?

Защита блога от спама

После последнего апа ТИЦ, количество спама на этом блоге увеличилось до 800 – 1000 сообщений в сутки. Если я забывал дней пять очищать БД от спама, то таблица в базе данных с комментариями увеличивалась на 100-200 мегабайт.

Конечно, Акисмет вылавливает спам, но база данных всё равно увеличивается и заметно замедляет работу сайта. Поэтому мне захотелось вообще снизить до нуля спам комментарии, чтобы у ботов просто не было возможности оставить комментарий.

Что было

За последние 19 дней, акисмет выловил почти 16 тысяч комментариев:

Защита от спама блога на WP

За последние сутки, после моих мероприятий – ни одного спам комментария.

Защищаем блог от спама

Сразу не хотелось ставить всякие капчи и тому подобные вещи, которые отталкивают посетителей писать комментарии, поэтому искал другие способы и получилось вот так:

1) Установил плагин от wp-kama.ru, он наверное вылавливает 95% спама. Принцип работы его заключается в том, чтобы блокировать комментатора, у которого нет referrer-a и который не нажимает кнопку отправить комментарий, а напрямую посылает запрос к файлу wp-comments-post.php.

2) Установил плагин WP-Ban. Этот плагин может блокировать по IP, реферу, User Agents. По ip мне кажется банить смысла нет, потому что все пользуются прокси серверами и ip всегда меняются. Поэтому я заполнил окно user-agent. Определить уникальные юзер-агенты, спам ботов, можно по логам сайта. Главное не блокировать общие слова из юзер агентов, чтоб простые посетители могли заходить на сайте. Вот часть списка, слов из User Agents, которые банятся этим плагином:

AMD64
KTXN
Media Center PC
SL Commerce Client
Webster Pro

Идея получается такая – если первый плагин пропускает комментарий, который оставляется с помощью эмулирования нажатия кнопки «Прокомментировать», то руками я смотрю юзер агент или ip этого комментатора и добавляю его в WP-Ban.

3) По идее этот пункт уже не нужен, но всё же я его тоже сделал. В файл .htaccess добавил код, который перенаправляет ботов, которые запрашивают файл wp-comments-post.php без Referer.

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*cospi.ru.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://google.ru/$ [R=301,L]

Все современные спам-машины :), уже подставляют нужный реферер, но может кто-то из спамеров пользуется старыми скриптами и.т.п. вещами.

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

Чистка БД

Если у вас похожая проблема на блоге и количество спама такое, что нет времени удалять руками, то есть вот такие запросы SQL:

Пакетное удаление спам комментариев

DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';

Пакетное удаление отклоненных комментариев

DELETE FROM wp_comments WHERE comment_approved = 0;

Это всё делается в phpMyadmin во вкладке SQL:

sql

Сделайте бекап базы данных, перед выполнением этих запросов, а то мало ли что.


Поделитесь записью:
Комментарии
  1. Виктор

    Отлично. У меня спам не идет пачками, Акисмет отрабатывает, но мало ли… Пригодится 😉

  2. Cospi

    Так у меня тоже Акисмет работает, но он перемещает в спам и этого спама накапливается столько, что блог еле грузится. После этих поправок, думаю вообще его убрать, а то он много лишних строк в БД создаёт.

  3. Sickboy

    А я себе плагин KeyCaptha установил и не парюсь) Пока ни один спам-бот не пробил, юзаю уже пару месяцев на 3 сайтах. 🙂

  4. Cospi

    За то вашим посетителям не удобно, постоянно капчу вводить. Многие ведь не хотят комментировать, когда надо что-то лишнее вводить.

  5. akkad

    Очень актуальная статья. RewriteCond %{HTTP_USER_AGENT} ^$ Можете объяснить эту строчку? Это пустое поле User-Agent? У меня стоит math-comment-spam, но последнее время иногда проскакивает пакет спама. Не понимаю в чём причина. Хотя для обработки комментариев у меня используется не wp-comments-post.php, ибо я переделал на аякс.

  6. Cospi

    Получается да, как пустой User-Agent. Точно сказать не могу — это решения я писал не сам, а взял готовое. В кодексе на WordPress.org, советуют так перенапровлять ботов.

  7. Сергей

    Уже как полгода использую плагин Antispam Bee, который в отличии от Акисмет не только фильтрует, но и удаляет спам! Кстати Акисмет удалил совсем…

  8. Артем

    Я тоже предпочитаю использовать плагин Akismet и не использовать капчу. Самое интересное, что акисмет вполне справляется со своей задачей. А что касается хлама в БД, то можно использовать в совокупности плагин WP-Optimize, и уже время от времени с его помощью чистить БД от спама и ревизий ненужных.

  9. Егор

    Пользуюсь плагином NoSpamNx. Никаких каптч, никаких картинок, которые нужно переворачивать, чтобы оставить комментарий. Просто подмена полей, как было сказано в описании. Пока что спам вообще не беспокоит. 🙂

  10. Простой

    Без защиты если блог раскрученный, спама придёт уйма. Устанешь удалять)) Поэтому надо подумать об анти спаме.

  11. Лилия

    А ещё плагин Dcaptcha отлично справляется со спамом в комментах. Пока ни одного не пропустил. Хрумер ему ни по чем 🙂 Настроила, чтобы все спам-комментарии сразу попадали в корзину. Остаётся только время от времени её чистить. Вот только не знаю, удаляются ли они навсегда или прописываются в БД.

  12. Александр

    Да, тоже удалил Акисмет давно. Использую: Антиспам Би, Инвизибл Каптча и — никаких проблем. Если парочка спаммеров пробьется, то, наверное, пир устраивают по этому поводу.

  13. Cospi

    Парочка не страшно, у меня правдо ещё ни одного комента за последний месяц спамного не прошло. Ещё очень хорош плагин WP-SpamFree, он без капчи.

  14. Kasab

    хорошая защита от спама, это позволить коментировать только зарегестрированным пользователям, и регистрацию только по приглашению сделать, но это снизит посещения в 3 раза… а те же спамеры, это посещения на блог))

  15. Cospi

    Да нет там посещений, они на прямую обращаються к файлу который отвечает за приём комментариев, с помощью софта специального.

  16. Виктор

    Нифига не работает это решение. Нашел его тоже на другом блоге. Спама меньше ни на сколько не стало. Так что можно удалять этот код спокойно из .htaccess.

  17. Дмитрий

    Во как. У меня на блоге пузомерки — то не ахти какие, а за сегодняшнюю ночь пришло около 300 сообщений. ВП хоть и умеет закидывать в черный список по определенному слову (buy viagra например), но эти маленькие сволочи научились в каждое сообщение бессмысленный набор букв вставлять! Буду выжигать их этими способами, спасибо.

  18. Саша

    у меня тоже KeyCapthа стоит, замучилась с этими ботами, пришлось поставить)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *