Спам в комментариях в WordPress, как избавиться. Часть 1

На днях решил заняться проблемой Спама в Комментариях на своем блоге на движке WordPress.

До этого у меня комментарии стояли на модерации перед их появлением (поставил галочку в настройках в  Параметры-Обсуждение «Администратор должен проверить комментарий» ), и сразу без проверки не появлялись на сайте, но ежедневно появлялись около 20-30 комментариев для модерации, и все это приходило уведомлениями на почту, в итоге насобиралось их внушительное количество, большинство из которых был спам, решил разобраться в этой ситуации.

Рассмотрев собравшиеся у меня комментарии, обнаружил, что большинство из них приходят с одних и тех же IP, и если их заблокировать, вероятность Спама заметно уменьшится.

Это можно сделать несколькими способами, рассмотрим некоторые из них

1. Через ..htaccess

Можно закрыть доступ в корневом .htaccess для IP, с которых в большом количестве выгружается Спам:

 order allow,deny
 allow from all
 deny from 117.21.227.43

Но если нет уверенности, что это на 100% спам адреса, можно сделать более изысканным способом. Все комментарии после их заполнения пересылаются на обработку файлу wp-comments-post.php , делаем таким образом:

RewriteCond %{REMOTE_ADDR} 117\.21\.227\.43 [OR]
RewriteCond %{REMOTE_ADDR} 117\.21\.226\.205 [OR]
RewriteCond %{REMOTE_ADDR} 117\.21\.225\.25 [OR]
RewriteCond %{REMOTE_ADDR} 117\.21\.227\.47 [OR]
RewriteCond %{REMOTE_ADDR} 117\.21\.225\.6 [OR]
RewriteCond %{REMOTE_ADDR} 222\.187\.222\.104 [OR]
RewriteCond %{REMOTE_ADDR} 117\.21\.224\.16 [OR]
RewriteCond %{REMOTE_ADDR} 188\.143\.232\.31 [OR]
RewriteCond %{REMOTE_ADDR} 178\.137\.160\.243 [OR]
RewriteCond %{REMOTE_ADDR} 117\.21\.227\.40
RewriteRule ^wp-comments\-post\.php$ http://ukritie.org.ua/blog/blacklist.php [R,L]

в данном варианте с указанных адресов можно будет ходить по сайту, но при написании комментариев с них они оставляться не будут, а будет происходить переход на указанную нами специфическую страницу.

2. С помощью PHP

Данный вариант может быть актуален, если запись в .htaccess не удается добавить, или она не работает по каким то причинам, например из-за ограничений у хостера. Нужно внести такой код на страницу, с которой будет перегружать комментарий, это может быть index.php, но у меня сверху его подгружается файл wp-blog-header.php и я решил это сделать через него, у меня работает отлично. В начале файла добавим такое:

<?php
$block = array("117.21.227.43",
               "117.21.226.205",
               "117.21.225.25",
               "117.21.227.47",
               "117.21.225.6",
               "117.21.225.42",
               "222.187.222.104",
               "117.21.224.16",
               "188.143.232.31",
               "178.137.160.243",
               "117.21.227.40"
               );
if (in_array ($_SERVER['REMOTE_ADDR'], $block)) {
    header("Location: http://ukritie.org.ua/blog/blacklist.php");
    exit();
}
?>

Можно в массиве указать временно добавить свой IP (который можно глянуть для примера на сайте 2ip.ru) чтобы убедиться что все работает нормально.

3. Через настройки Worpress

Список слов, как вероятный спам, можно указать в админке   в разделе Параметры-Обсуждение-Черный Список, каждое слово должно указываться в новой строке, также туда можно вносить и вероятные IP адреса спамеров. Но при добавлении нужно быть осторожным, потому что как спам будут россматриваться все слова содержаещие данное.слово, например если внести слово ass, то в спам будут попадать сообщения с такими словами как association или class. Отличием данного способа для IP будет являться также то, что сообщения с IP будут все равно добавляться на сайт, но по умлочанию будут лежать в разделе Спам.

Каким из этих способом воспользоваться, решать уже Вам.

Для уменьшения количества Спам сообщений я также воспользовался плагином Spam IP Blocker, который блокирует сообщения с IP которые занесены в такие общественные блеклисты как Spamhaus и Spamcop.

 

Reply

Copyright © 2017 Blog Ukritie. All Rights Reserved.
Theme by Lorelei Web Design.