Как бороться со спамом на блоге

98 Ирина29.11.2012Как бороться со спамом на блоге

Дорогие блоггеры, сегодня у меня на блоге статья моего мужа. Как бороться со спамом? Тема лично для нашего блога очень актуальная. В последнее время столько спама приходит, что просто не по себе делается. И как найдется одна «проторенная дорожка» — какая-то статья, так все — только успевай удалять комментарии. Как мы боремся со спамом? Совсем недавно мы нашли способ борьбы со спамом, который разом решил все наши проблемы. Надеюсь, и вам будут полезна эта информация. Передаю слово мужу.

Рано или поздно у каждого блоггера встает вопрос о защите своего блога от спама. В этой статье я расскажу, какие существуют способы защиты блога и скажу, чем пользуемся мы.

1. Самое первое средство для борьбы со спамом, с которым сталкивается блоггер – это плагин Akismet. Во многих версиях WordPress этот плагин предустановлен изначально, вам не надо ничего искать и скачивать, а только активировать его и начать пользоваться. За кажущейся простотой скрывается сразу несколько проблем.

Во-первых, после активации плагина, нужно зарегистрироваться на сайте akismet.com и получить ключ активации. Там все на английском языке и не все могут пройти эту регистрацию. Вторая проблема состоит в том, что плагин может отправить в спам те комментарии, которые таковыми не являются. После пары таких случаев мы решили отказаться от использования этого плагина.

2. Модерация каждого комментария. В WordPress есть такая возможность – не публиковать комментарий, пока он не пройдет ручную модерацию администратора. Этот способ защитит вас от спама на 100%, но когда ваши посетители пару раз не увидят свой комментарий сразу после публикации – у них вообще пропадет желание оставлять комментарии на вашем блоге. Поэтому рекомендовать этот способ защиты от спама я не могу.

3. Настройка внутренних фильтров WordPress. Зайдите в админку WordPress, раздел Параметры и выберите пункт меню Обсуждение. На этой страничке есть пункт меню Черный список, в котором можно указать слова и словосочетания, присутствие которых в тексте комментария, имени автора, URL или e-mail приведет к том, что данный комментарий будет помечен как спам. Данный метод защиты малоэффективен, так как начинает работать, когда спамер уже разместит несколько комментариев, а администратор вручную внесет ключевую фразу в черный список.

4. Капча. Может не все слышали это слово, но видели капчу все. Капча – это картинка, текст с которой нужно ввести в поле ввода, чтобы ваш комментарий был опубликован. Выглядит это так:

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

5. Плагин Yet Another Related Posts Plugin. Этот плагин нужен для защиты от англоязычных комментариев. Если в тексте комментария нет ни одной кирилличной буквы, то такой комментарий будет считаться спамом. До недавнего времени этот плагин был установлен на нашем блоге, но сейчас необходимость в нем отпала, так как есть другой, более эффективный, способ защиты от спама, о котором и пойдет дальше речь.

Защита от спама на блоге http://IrinaZaytseva.ru

Спам-скрипты, которые используются для рассылки спама, используют стандартное поле для вода комментариев с идентификатором comment. Идея заключается в том, чтобы создать еще одно поле ввода с идентификатором отличным от стандартного а старое поле ввода сделать невидимым. И тогда человек будет вводить комментарий в одно поле, а спам-скрипт – в другое. На этапе публикации комментария старое поле будет игнорироваться и использоваться новое.

Итак приступим. Зайдите в админку WordPress и откройте для редактирования файл comments.php. В этом файле нужно найти то место, где определяется поле ввода с идентификатором comment. У меня эта строка выглядит так :

<p><textarea name='comment' id='comment' cols='58' rows='10' tabindex='4'></textarea></p>

После этой строки нужно вставить еще одну аналогичную строку, но с новым идентификатором, например newcomment, а старое поле ввода сделать невидимым. В результате получем следующее


<p><textarea name='comment' id='comment' style='display:none' cols='58' rows='10' tabindex='4'></textarea></p>
<p><textarea name='newcomment' id='newcomment' cols='58' rows='10' tabindex='4'></textarea></p>

Теперь нужно добавить код, который будет игнорировать старое поле ввода и использовать созданное нами новое. Этот код нужно вставить в файл functions.php в самый конец, перед закрывающими символами ?> Вот этот код:


// защита от спама
add_filter('pre_comment_on_post', 'verify_spam');
function verify_spam($commentdata) {
$spam_test_field = trim($_POST['comment']);
if(!empty($spam_test_field)) wp_die('Это СПАМ!');
$comment_content = trim($_POST['newcomment']);
$_POST['comment'] = $comment_content;
return $commentdata;
}

Сохраните все изменения на хостинге, и ваша защита от спама начнет функционировать.

Через день, после запуска этой защиты я выяснил, что возник конфликт с плагином Qip Smiles, который позволяет вставлять смайлики в комментарии. Если вы используйте этот плагин или любой другой плагин работающий с полем ввода comment, то вам необходимо внести изменения в этот плагин. В моем случае пришлось отредактировать две строчки в файле qips-js.php:


var input = qips_$('comment');
qips_$('comment').style.height = actualSize + 'px';

В этих строчках нужно просто поменять comment на newcomment.

Вот такая, не сложная защита позволила нам полностью избавится от спама, рассылаемого скриптами.

В последнее время мне стали часто задавать вопросы про хостинг. У многих пользователей хостинга timeweb стали возникать проблемы с повышенной нагрузкой на ресурсы сервера. Могу порекомендовать очень хороший хостинг Sprinthost, на котором расположен наш блог. Такой службы поддержки я не встречал нигде. Простые вопросы можно задать по бесплатному круглосуточному телефону, более сложные проблемы решаются путем переписки. Очень быстро отвечают, причем 24 часа в сутки. Проверил на себе. И не занимаются отписками, типа это ваш сайт — сами и разбирайтесь. Когда возникали проблемы с WordPress реально помогали их решить, хотя это и не задача хостера. Всем, кто хочет перейти на Sprinthost могу помочь советом или выполнить сам процесс переноса сайта. Пишите мне s.v.zaytsev@gmail.com

Подписка для блоггеров

А теперь душевный подарок. Также от мужа. Надеюсь, вы с удовольствием все послушаете. Наша классика. Машина времени. Однажды мир прогнется под нас. Сама обожаю эту группу и эту песню особенно. И текст, и музыка — все настолько мудро…

Желаю всем продвижения, радости от процесса, мудрости и просто вдохновения. Верьте и доверяйте себе.



Ваш отзыв

Ваш E-mail не будет опубликован.

Отзывов (98)

  1. Евгения Куварина
    14 Дек 2015 в 19:35

    Сергей, пользовалась Вашим способом борьбы со спамом, но посл обновления WordPress до 4.4 он перестал работать. При написании комментария появляется сообщение об ошибке :»введите комментарий. Как это можно исправить? Сейчас установила плагин от спама, но хотелось бы продолжить пользоваться данным кодом

    Ответить

    • Сергей
      14 Дек 2015 в 22:57

      Мы пока не обновляли wordpress. Видимо потребуются какие-то изменения скрипта или вообще придется от него отказаться.

      Ответить

  2. Галина
    26 Фев 2015 в 15:38

    Здравствуйте, Сергей! Как я уже писала, я поставила данный код и все работает, спам-комментариев ноль. НО, сильно возросла нагрузка на сервер. Сегодня в какой-то момент достигала 92%! Такого раньше никогда не было. Если так будет продолжаться, боюсь, что меня хостер заблокирует в один «прекрасный» момент, а затем предложат поменять тариф, а он и так достаточно высокий.
    Такую, резко возросшую нагрузку, я связываю именно с тем, что я поставила этот скрипт. Теперь сижу и думаю, вернуть все обратно и просто закрыть комментарии к проблемной статье, или ждать, что будет дальше. Очень хочется узнать Ваше мнение, как бОльшего специалиста в этой сфере, чем я.
    Заранее спасибо за ответ!

    Ответить

    • Сергей
      26 Фев 2015 в 15:58

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

      Ответить

      • Галина
        26 Фев 2015 в 16:24

        Вы имеете в виду комментарии к той статье, на которую идет основная масса спама? Сейчас закрыла. Посмотрю, что это даст.
        Я не думаю, что нагрузку дает скрипт, конечно же. Нагрузку дают атаки ботов, которые пытаются забрасывать спам, но не могут. Это я так себе представляю.

        Ответить

    • Сергей
      26 Фев 2015 в 16:31

      Это не факт, что эти боты пытаются написать гадость на вашем сайте. У них есть другой интерес. Внедрить вредоносный код. Защититься от нагрузки в этом случае за приемлемые деньги никак.

      Ответить

      • Галина
        26 Фев 2015 в 17:12

        Но у меня было в районе 100 огромных (в пол страницы) комментариев в сутки, на английском, китайском и русском, и все в основном, к одной статье.
        Это, конечно, не исключает, что и код пытаются внедрить. И здесь мне уже своими силами точно не защититься, тут Вы правы.

        Ответить

  3. Галина
    10 Фев 2015 в 15:19

    Ирина, Сергей, спасибо, что поделились информацией! Как раз возникли вопросы по спам комментариям. У меня, правда, стоит Akismet и прекрасно справляется со своей работой. Все спам комментарии уходят в спам. А нормальные комментарии очень редко туда попадают.
    У меня вопрос такой, огромное количество спам-комментариев приходит на одну статью. И я даже подумываю её вообще удалить. Жалко, конечно, но эта статься не пользуется благосклонностью ни Яндекса, ни Гугла. Может быть, именно поэтому. Я же не знаю, что там видят поисковики. Думаю, что атаки на сервере, повышающие нагрузку, тоже с этим как-то связаны. Хотя, не знаю, я не большой специалист в этих вопросах, к сожалению.
    Сергей, буду благодарна, если напишете свое мнение, стоит ли удалить статью, к которой цепляются практически все спам-комментарии (при чем, большая часть на английском и китайском)? Или если не будет этой статьи, будут другие?
    Спасибо заранее!

    Ответить

    • Сергей
      10 Фев 2015 в 23:52

      Статью удалять не надо. Надо закрыть возможность комментирования этой статьи. Это в админ панели находится. Зайдите в эту статью -> Настройка экрана -> Поставьте галку Обсуждения. Внизу статьи появится «Разрешить комментарии.» и там надо убрать две галки

      Ответить

      • Галина
        11 Фев 2015 в 9:43

        Сергей, спасибо! Не знаю, почему мне самой не пришло в голову закрыть комментарии к той статье?! Статья старая, там все равно уже никто комментариев не пишет.
        Но только теперь мне и этого не придется делать. Я вчера подправила коды по Вашему совету и сегодня НИ ОДНОГО спам-комментария! Ура! Спасибо большое за совет! Посмотрю, как дальше будет.

        Ответить

  4. Денис Скрипник
    03 Фев 2015 в 9:45

    Как настраивать это в современных стандартных шаблонах: такого кода там нет.
    Благодарю.

    Ответить

  5. Денис Скрипник
    18 Янв 2015 в 15:39

    Здравствуйте. Интересная реализация. Пошёл рассказывать сообществу Maxsite CMS — может что подобное сделают.

    Ответить

  6. Сергей Лупандин
    28 Окт 2014 в 22:34

    Для спамщиков стоит задуматься, что 10 оставленных осмысленных комментариев, гораздо лучше 100 спам-комментариев. Также блоггеры любят, когда люди читают много статей на их блоге и оставляют осмысленные комментарии. Эту мысль придумал не я сам, а прочитал на каком-то блоге.

    Ответить

  7. Сергей Лупандин
    28 Окт 2014 в 21:33

    Знакомство с работой плагина акисмета отобьет у любого комментатора желание спамить. На каком-то блоге я прочитал, что акисмет заносит в свою базу e-mail комментатора-спамщика и если этот комментатор пишет даже нормальные комментарии, указывая ту же почту, но уже в другом блоге на котором установлен акисмет, то его комментарии не пропускаются. Возможно причина, что акисмет у вас не пропустил пару нормальных комментариев была в этом.

    Ответить

  8. Николай
    27 Сен 2014 в 10:30

    Я думаю, что надо всё-таки проводить ручную модерацию. По-крайней мере мне с двумя-тремя десятками спама удаётся справляться. Когда пойдёт больше комментариев, тогда можно поставить и автомат — пусть стоит на страже. И пусть отсеивает вместе со спамом и дельные комментарии, тогда уже такие потери будут незаметными.

    Ответить

  9. Natalya
    07 мая 2014 в 12:43

    Спам, наконец, добрался и до меня. Попробую следовать Вашему опыту — использую «newcomment». Спасибо!

    Ответить

  10. Максим Прядко
    01 Мар 2014 в 5:29

    Самый простой и эффективный способ защиты от спама — это найм модератора. Только живой человек может разобраться, кто является спамером, а кто — нет. Услуги фрилансера, занимающегося модерацией стоят не так уж и дорого.

    Ответить

  11. Игорь
    07 Фев 2014 в 15:48

    У меня в комментах пока Спама нет , но вот регистрируются Спамеры на блоге без конца вы как нибудь с этим боритесь ? этож так всю базу данных могут забить ))

    Ответить

  12. Анна
    20 Окт 2013 в 21:56

    Я только вчера использовала метод, который вы приводите последним, нашла совет на одном сео-блоге, Акисметом не пользовалась — не смогла зарегистрироваться, ставила Антиспам Вее, но он конфликтовал с темой моего шаблона и поэтому его пришлось удалить, затем блокировала по ip адресам, но потом спама стало так много , аж по 500 в день, что пришлось разбираться с кодами в редакторе и уже целый день ни одного спам-комента.

    Ответить

  13. Светлана
    04 Авг 2013 в 0:05

    Самый последний способ классный, но сложный. Меня вполне устраивает Акисмет и невидимая капча. Да, иногда некоторые комментарии попадают в спам, но это бывает редко. Когда открываю в админке раздел «комментарии», наверху есть строчка, в которой видно сколько в «спам» попало комментов. Тогда я иду в папку «спам» и перемещаю нормальные комментарии в «комментарии», а спам удаляю. Уф! Надеюсь, понятно написала

    Ответить


Ирина Зайцева