Одно из препятствий на пути к созданию успешного блога на основе WordPress — это использование вашего блога другими людьми для размещения спама в комментариях вашего блога и попытки привлечь больше посетителей на собственные сайты за счет вашего проекта. Иногда для этой цели используют "роботов", иногда — кустарные самодельные скрипты для браузеров, иногда спамят вручную, как обычно комментируют пользователи. И все это совсем не хорошо для вашего проекта.
Но благодаря гибкой архитектуре WordPress есть множество способов помешать спаммерам. В этом посте мы поговорим о шести простых и эффективных методах создания блога, в котором не будет спама.
1. Король антиспама — плагин Akismet
От чего защищает: От автоматического и "ручного" спама.
Говоря о различных методах борьбы со спамом в комментариях, было бы странно не начать с наиболее популярного инструмента борьбы со спамом. Он наиболее популярен еще и потому, что включен в поставку WordPress; но также и потому, что у него довольно высокое качество борьбы со спамом.
Согласно данным с официального сайта данного плагина, он выполняет сотни тестов на собственных серверах, когда в ваш блог добавляют новый комментарий. Если тест положительный, комментарий появится в вашем блоге; в противном случае новый комментарий отправляется в мусорную корзину.От вас потребуется всего лишь заполнить простую регистрационную форму (вы можете выбрать между бесплатной и платной версиями), и вы сможете начать пользоваться данным плагином, просто введя ключ к API на странице настроек плагина.
Читайте подробнее о настройке плагина Akismet в нашем уроке Что делать сразу после установки WordPress, Шаг 7.
2. Отключаем прямой доступ к файлу wp-comments-post.php с помощью .htaccess
От чего защищает: От автоматического спама.
Вы всегда можете отключить прямой доступ к файлу wp-comments-post.php путем добавления следующего кода к вашему файлу .htaccess:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post.php* RewriteCond %{HTTP_REFERER} !.*yourdomainname.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L] </IfModule>
(Источник кода: Cats Who Code)
Логика тут проста: если "реферал" не из вашего блога (не забудьте заменить "yourdomainname" на имя вашего домена), вы не сможете получить доступ к файлу. Еще один положительный момент в этом коде заключается в том, что "роботы"-спаммеры не увеличат нагрузку на ваш ресурс, поскольку не смогут получать доступ к целевому файлу.
3. Плагин "Cookies for Comments"
От чего защищает сайт: Как от автоматического, так и от введенного вручную спама.
Знаю, что должен оставаться беспристрастным по отношению к различным антиспам-плагинам, но плагин Cookies for Comments — это, похоже, самый лучший плагин, которым я когда-либо пользовался.
Процитирую автора плагина Donncha O Caoimh:
Плагину требуется таблица стилей или снимок вашего исходного html-кода в блоге. Когда браузер загружает такую таблицу стилей или образ, то размещается еще и cookie. И если потом пользователь оставляет комментарий, то идет проверка на наличие данного cookie-файла. Если этого файла нет, то комментарий помечается как спам.
Все очень просто. Даже более того: плагин также проверяет, насколько быстро отправляется комментарий. Так, например, если комментарий отправлен в течение 3 секунд с момента загрузки страницы с постом, то такой комментарий скорее всего является спамом. Вы можете установить интервал на странице настроек плагина и выбрать также, как поступать с "перехваченными" комментариями: удалять их сразу же или помещать их в папку "спам".
4. Использование сторонней системы комментирования (наподобие Disqus или Jetpack)
От чего защищает: От автоматического спама.
Есть хорошая сторона в системах комментирования: спам-роботы с ними вообще не справляются. Возможно, они не могут практически ничего с ними сделать, т.к. системы комментирования в основном используют загрузку внутри iFrame (а может, причина еще в чем-то, не знаю точно).
Как бы то ни было, вы можете и даже должны использовать системы комментирования от сторонних разработчиков, если вас буквально "заваливает" спамом в комментариях. У них расширенная функциональность, они хорошо выглядят и приятны для использования, и главное — у них надежный "иммунитет" относительно спама.
Читайте также:
5. Использование чекбоксов для отправки комментариев на сайт
От чего защищает: От автоматического спама.
Опять же: приведенная мера не является слишком надежной для защиты от спама, но может помочь вам в решении ваших проблем и при этом не раздражает законопослушных обычных комментаторов вашего сайта.
Для начала вам надо добавить чекбокс к форме комментариев в вашей теме (скорее всего, эта форма содержится в файле comments.php). Делается это примерно вот так:
<label for="enable"><input type="checkbox" name="enable" id="enable" onClick="apply()" class="enable_checkbox"> Check this box to enable the send button</label>
Хорошо также добавить этот чекбокс сразу над кнопкой добавления нового комментария. Кстати, запомните значение атрибута "name" в кнопке добавления нового комментария и элемента <form>. Если у вас нет атрибута для "name" и элемента
Комментарии к записи: 3
День добрый.
Напишите пожалуйста пример блокировки доступа спамеров к wp-comments-post.php на примере вашего сайта. Не могу разобраться как именно должен выглядеть конечный вид кода. В файле .htaccess уже есть запись, т.е. новую добавить ниже? Жду вашего ответа в данном посте
Мы не используем эту блокировку через .htaccess на wpcafe.org. Пример готового кода есть в этом уроке в пункте 2, добавляется в .htaccess с новой строки.
Мне второй метод с аштиакцесс помог. Уже сил никаких не было, по 400 комментов спама сыпалось в сутки. Теперь спокойно вроде. Спасибо!