WordPress »
Спам в комментариях. Как же с ним бороться?
Есть много плагинов против спама. Это различные капчи, введение суммы цифр на проверку, установка нужного флажка и другие. Но так ли они эффективны? Именно этот вопрос мы хотим обсудить в этой статье.
Для начала, определим какой спам бывает в комментариях.
Основная масса спама создается программами автоматической рассылки. Некоторые из них могут с легкостью распознавать капчи. Если Ваш блог попал в базу данных спамеров, то поток спама будет очень большим. И в таком случае надо предпринимать особые меры для отсеивания большого количества мусора в комментариях.
Также есть любители оставлять ссылки в ручном режиме. Часто это обычные читатели, которые не упускают случая проспамиться ссылкой. Такие сообщения добавляются в ручном режиме, и часто бывают вполне вменяемыми, но их цель — получить ссылку. Нет, ссылки то не жалко, но подобные комментаторы портят внешний вид блога.
Так что же делать если ваш блог спамят?
Сначала мы обсудим ряд плагинов, которые обязательно помогут и отсеят достаточно много ненужных комментариев. Вот небольшой список:
Akismet — стандартный плагин, который идет в сборке Wordpress по умолчанию. Для активации нужно зарегистрироваться на сайте wordpress.com и в профиле найти сгенерированный ключ.
Spam Karma 2 — этот плагин фильтрует все комментарии до того, как они появятся на вашем блоге. Хорошая альтернатива Акисмету.
Anti Spam Image — эффективный плагин по предотвращению спама в комментариях. Добавляет продвинутую капчу.
Math Comment Spam Protection — заставляет посетителя складывать цифры при добавлении комментария, что достаточно эффективно против некоторых ботов.
Aprove only russian comments — плагин не пропускающий комментарии, если в них нет текста на русском языке. Очень простой, но эффективный плагин. Полезен, как дополнение к Akismet.
Но какой плагин выбрать? Достаточно ли будет его для защиты? А для блокирования текста не на русском? А если человек пишет на транслите? Да-да, бывает и такое. Складывание цифр — хороший вариант, но все же не очень надежный, есть вероятность, что некоторый спам пройдет. Капча — на любителя (: Лично я — против нее.
Если же после применения этих плагинов спам все еще остался, или ни один из этих плагинов вам не подходит, то воспользуемся небольшим трюком.
Откроем файл comments.php в вашей теме и найдем примерно такую строчку:
1 | <textarea name="comment" id="comment" cols="10" rows="5" tabindex="4"></textarea> |
и заменим ее на:
1 2 3 4 | <div class="com"> <textarea name="comment" id="comment" cols="10" rows="5" tabindex="4"></textarea> <textarea name="real-comment" id="real-comment" cols="10" rows="5" tabindex="4"></textarea> </div> |
В файле style.css вашего шаблона добавим следующую строчку:
1 | .сom { position:absolute; left:-1000px; } |
Мы создали скрытый div который вынесли за пределы видимости экрана. Теперь в файле wp-comments-post.php, который лежит в корне сайта находим примерно такие строки:
1 2 3 4 | $comment_author = trim($_POST['author']); $comment_author_email = trim($_POST['email']); $comment_author_url = trim($_POST['url']); $comment_content = trim($_POST['comment']); |
и заменяем их на:
1 2 3 4 5 | $comment = trim($_POST['comment']); if(!empty($comment)) wp_die('No spam.'); $comment_author = trim($_POST['author']); $comment_author_email = trim($_POST['email']); $comment_author_url = trim($_POST['url']); $comment_content = trim($_POST['real-comment']); |
Что мы сделали?
Мы создали еще одну область для добавления комментария, и назвали ее как оригинал, предварительно вынеся за пределы видимости экрана. Роботы которые заполняют форму, еще не научись определять css стили и для них существует 2 формы с именами comment и real-comment. Тогда как пользователь видит только одну с именем real-comment. При заполнении скрытой формы будет выводиться сообщение с ошибкой и комментарий будет игнорироваться.








Комментарии (1) ↓
Pirat / 23 Июнь 2010 в 13:11
Довольно интересно с изменением кода. Нужно будет попробовать.
Я на данный момент использую единственный Anti Spam Image и спам практически исчез. Но остался спам от зарегистрированных пользователей, но это уже совсем не то. Я после переезда на другой хостинг, упустил активацию данного плагина, так мне за два дня аж 217 комментов вкинули — устал чистить — это к тому, что среди хлама были и нормальные комментарии. Как только активировал — спам исчез. Даже как-то скучно стало (: