
Более надежный, по сравнению с предыдущим, метод избавления от авто-спама в комментариях WordPress. Теперь в виде плагина!
Я уже делал попытки бороться с автоспамом в комментариях, но, как говорится, — "первый блин комом". Несмотря на то, что прошлый метод тоже успешно борется с автоспамом у него есть недостатки:
- сложная интеграция в шаблон (установка);
- не очень хороший фильтр антиспама.
Суть метода, в двух словах, заключается в следующем: комментарий можно оставить только кликнув на кнопку "отправить комментарий" (submit), никакие другие способы оставить комментарий не пройдут. Поэтому, стоит только установить плагин и можно забыть про автоспам в комментариях WordPress!
На одном из моих сайтов прошлый метод все равно пробивали. После того, как я понял, каким образом пробивается защита, и небольших рассуждений на тему решения данной проблемы, родилась идея усовершенствовать прошлый вариант защиты от спама. Новый вариант получился в виде очередного моего плагина для WordPress, т.е. для того, чтобы все заработало, уже нет необходимости редактировать шаблон, нужно просто загрузить и активировать плагин.
Проблема прошлой защиты была в том, что когда комментарий (запрос) отправлялся сразу в файл wp-comments-post.php он не был защищен, в дальнейшем я придумал хак, который проверял реферер ссылку и если она не была равна ссылке страницы, с которой отправлялся комментарий (а она должна быть равна именно ей), то комментарий блокировался. Однако, как я позднее понял, некоторые спам-проги вставляют в header заголовок реферер ссылку той страницы на которую они отправляют спам-комментарий, что в последствии приводит к бесполезности антиспама.
Как решить эту проблему и блокировать спам в комментариях для WordPress я придумал спустя некоторое время, решением стало использовать nonce защиту WordPress. В результате получилось что-то вроде псевдо-каптчи. "Псевдо", потому что заполнять ничего не надо, но при этом защита работает по принципу каптчи (проверяется определенный код, который постоянно меняется). Небольшие сложности возникли в процессе реализации задуманного, но в итоге получилось таки.
Итак, подведем итог. Преимущество этого плагина над другими антиспам плагинами для WordPress:
- Во-первых, теперь это плагин и его можно включать/выключать;
- Во-вторых, никаких каптчей, чекбоксов (галочек), картинок и прочей античеловечности. Присутствие плагина визуально никак не проявляется;
- В-третьих, никакого авто-спама!
Хватит "лирики", перейдем к делу!
На "манеж" выходит очередной мой плагин — kama spamblock — защита от авто-спама в WordPress. Надеюсь под ваши аплодисменты 
Скачать плагин защиты от спама в WordPress
Поддержка версий WordPress: 2.0+
Установка плагина:
- Загрузите файл из архива (kama_spamblock.php) в каталог плагинов
wp-content/plugins; - Зайдите в раздел "плагины" в админке вашего блога и активируйте плагин.
Как проверить что плагин работает?
В принципе, если плагин установлен и комментарий оставляется на блоге, то это говорит о том, что плагин работает! В противном случае при отправке комментария вы увидите сообщение "Your comment is blocked, because you look like a bot, or JavaScript is disabled in your browser.".
Для тех, кто хочет воочию увидеть, как работает плагин я сделал СПЕЦИАЛЬНУЮ страничку имитирующую спам-прогу пройдите по ссылке и попробуйте оставить комментарий у себя на блоге. Попробуйте выключить плагин и снова оставить комментарий. Вы увидите, что плагин работает.
Плагин может не работать, если:
<?php wp_footer() ?>
2. Форма комментирования в вашем шаблоне имеет нестандартный id. По-умолчанию в WordPress форма комментирования имеет id='commentform'.id определяется в файле comments.php, вот кусок файла из default темы:
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
3. Кнопка сабмита формы комментирования имеет нестандартный id. По-умолчанию в WordPress кнопка сабмита формы комментирования имеет id='submit'.id определяется в файле comments.php, вот кусок файла из default темы:
<input name="submit" type="submit" id="submit" tabindex="5" value="<?php _e('Submit Comment', 'kubrick'); ?>" />
Усиляем защиту
<input name="submit" type="submit" id="submit" tabindex="5" value="Оставить комментарий" />
можно заменить на
<b id="submit">Оставить комментарий</b>
или на ссылку
<a id="submit" href='javascript:return false;'>Оставить комментарий</a>
Обновления
Небольшое исправление - сделал полный УРЛ для отправляемых данных, а то на некоторых серверах плагин не работал.
Версия 1.3.0 (7.11.2010)
Обнаружил баг с последнего обновления, из-за которого в некоторых случаях плагин мог работать неправильно. Кто этот баг поймал сорри, обновите плагин (замените файл).
Версия 1.2.1 (24.10.2010)
Спасибо Игорю за багрепорт (невозможно ответить на коммент из админки)!
Изменения:
- Убрал проверку на спам-бота, для залогиненных пользователей (можно отключить в файле плагина). Соответственно теперь, ответ на комментарии из админки работает правильно;
- Немного изменил защиту.
Для обновления, просто замените файл плагина.
от 22.09.2010
Упростил принцип проверки. Теперь проверяется не через nonce, а проще - ежедневно генерируется случайная надпись (в общем, хуже не стало). Спасибо комментаторам, которые предупредили о баге. Кто использует этот плагин рекомендую обновить (просто замените файл плагина на новый).
от 29.07.2010
Исправил баг в коде. Добавил поддержку для более ранних версий WordPress, теперь плагин должен работать начиная с версии 2.0 (проверял на 2.7+).
от 25.07.2010
Добавил проверку обратной ссылки при пингах и трэкбэках. Теперь, трэкбэк уведомление появится только в том случае, если будет найдена обратная ссылка на сайт там, откуда пришло уведомление.
Не забываем ретвитеть этот пост, оставлять отзывы, вопросы, предложения и прочие социальности 
- Предыдущие по меткам
- Предыдущие записи
- Автоматическое растягивание поля (textarea) комментария ← 16.Июл.2010 // 4
- Мой метод избавления от спама в комментариях, для WordPress ← 10.Май.2010 // 13
- Функция для вывода последних комментариев ← 11.Апр.2010 // 109
- Меняем символы ХТМЛ (< >) на спецсимволы при комментировании ← 16.Апр.2010 // 12
- Автоматическое растягивание поля (textarea) комментария ← 16 Июль 2010 // 4
- Условные теги в WordPress и все что с ними связано ← 2 Июнь 2010 // 14
- Исполняемый php код в записях Wordpress ← 6 Июль 2010 // 32

Пару дней как стал сыпаться спам, за сутки штук 20.
Здравствуйте я хотел бы у знать у вас у меня вот какая проблема, когда я пишу комментирии к статье то мне выдает вот какую ошибку
Your comment is blocked! Are you bot, or JavaScript disabled in your browser?
Что это значит? или вот такая Ошибка: вы наверное неправильно ввели проверочное слово!
Хотя у меня нету никаких капч, и форма коментирования стоит стандартная
Конечно самое замечательное, что не надо вводить никакой капчи, да ещё её и не видно. А то одна капча отбивает желание что-то комментировать.
Добрый день, плагин уже больше года стоял - все было шикарно, никакого спама. Недавно стал появляться trackbackи спаммерского содержания. Хотя в настройках WP они не разрешены. На что грешить?
Не знаю даже. Долго продолжается это? У меня совсем редко тоже проскальзывает, но мелочь и со временем отваливается...
Ну пока не так, чтобы кидаться в панику. За 2 недели пришли 3 штуки. Удивило, что явно трэкбэки, но у меня в настройках они отключены были, и я проверил - галочки нету. Обновил двиг до 3.3, буду следить. С вашим плагином уже отвык видеть спам
)))
Здравствуйте! Поставил ваш плагин на свой сайт (включен режим multisite), так вот, я могу оставить комментарий из админки, а у редактора появляется ошибка, вернее надпись "-1" красным цветом, комментарий естественно не публикуется. В чем может быть причина, может подскажите? Заранее спасибо!
К сожалению, не знаю.
Установил на свой сайт - работает отлично. И никакой каптчи не надо. Огромное спасибо
У меня стоит плагин Akismet, но установить до конца не получается.
Попробуем Ваш, в установке он прост, посмотрим как в работе
Спасибо!
Если сравнить этот плагин с Акисмет, то какой из них будет более тяжелым для сайта?
Акисмет разумеется. Тут вопрос не тяжести, а качества фильтрации ведь. Акисметом я не пользовался никогда, но думаю у него есть свои преимущества над этим плагином.