Как запретить автоматический спам

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

Подавляющее большинство автоматических программ (ботов) работают по одному принципу — они определяют, что имеют дело с WordPress, и загружают не форму комментарирования, которую мы пытаемся всяческими способами защитить, а обращаются напрямую к файлу wp-comments-post.php, который отвечает за публикацию комментариев. В этом файле есть все, что им нужно — данные для ввода текста, фейкового почтового адреса и ссылки сайта. Так вот суть способа — в том, чтобы запретить прямое обращение к этому файлу. Тот, кто зайдет в блог и загрузит страницу обычным способом, загрузит вместе с ней и форму комментирования, из которой и идет обращение к файлу wp-comments-post.php. Оставленный таким образом комментарий будет опубликован. Ну а тот, кто попробует загрузить напрямую файл wp-comments-post.php, минуя страницу блога, получит сообщение, что ничего не найдено.

В файл .htaccess вставьте следующий код:

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]

Не забудьте указать вместо yourdomainname домен вашего сайта — все, кто загрузят файл wp-comments-post.php со страниц, принадлежащих этому домену, смогут оставить комментарий. Конечно, способ не дает полную защиту, потому что боты тоже стали умными, но 99% автоматического спама может остановить.

У этого способа есть один недостаток. Если комментатор использует вспомогательные программы для чтения RSS, прямо из которых можно оставлять комментарии, то он тоже будет распознан как бот. Но таких очень мало, и их можно сразу предупредить, что оставить комментарий можно только со страницы сайта.

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

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

  1. stundr

    если не ошибаюсь, то плагин antispam bee действует по такому же принципу?

    Ответить
    1. Мне кажется, Antispam Bee отсеивает спам с помощью скриптов Java. В нем есть проверка IP-адреса, но по реферальной ссылке он не определяет спам. Вру, есть такая проверка, если в настройках не отмечать чекбокс «Comments are also used outside of posts and pages».

      Ответить
  2. sotikov

    В файл .htaccess вставьте следующий код:
    Что-то файл этот у себя не найду…Где искать его?

    Ответить
  3. В корневой папке блога, там же, где и файл wp-config.php.

    Ответить
    1. sotikov

      Поискал, не нашёл.. Вот скриншот.

      Ответить
      1. Странно. Значит создайте пустой текстовый файл .htaccess

        Ответить