Навсегда защищаемся от спама в WordPress. Убираем спам регистрации для постинга в WordPress

Открывая несколько лет назад данный блог я конечно имел представление о спамерах, но я даже и думать не мог, что с развитием проекта проблема станет столь острой. После того, как посещения в день достигли отметки 100 человек, в комментариях стали появляться все больше и больше автоматических сообщений с ссылками на порно сайты, вирусы и так далее. Удалять такой объём вручную весьма проблематично. Стало очевидно — с эти нужно бороться! Полазив по просторам необъятной сети я нашёл весьма много подобных случаев и несколько решений по защите wordpress(а) от спама. Протестировав все я убрал не рабочие, доработал оставившие и дополнил специальными плагинами. Дальнейшая корректировка также дала хорошие результаты! Итак, как вы уже поняли, что в данной статье я расскажу как дать отпор черным оптимизаторам, которые хотят нажиться на успехе вашего блога и нарастить ПР и ТИЦ показатели своих сайтов. Для чего им этого нужно? Только лишь для того, чтобы в дальнейшем продавать размещение ссылок на биржах. В общем, если вам не безразлична судьба вашего проекта — тогда эта публикация будет для вас интересна. Но обо всём по порядку!

Решения антиспама при помощи плагинов

Вордпресс славится тем, что на него весьма просто установить всевозможные дополнения. Для этого всего лишь нужно зайти в админку сайта, далее «плагины» и выбрать подменю «добавить новый». В появившейся странице, в строке поиска набрать название необходимого компонента и нажать «установить» после чего кликнуть на «активировать». Этого достаточно, что бы расширить возможности ресурса. В одной из статей я уже рассматривал при помощи всевозможных модулей. Но какие продукты позволят защитить wordpress от назойливых сообщений в комментариях? Об этом ниже!

WP No External Links

Не только делает исходящие гиперссылки внутренними (вида https://сайт/go.php?redirect=http://openkat.com), но и закрывает их тегами noindex и nofollow. В результате поисковая система хоть и распределяет по ним вес страницы, но делает это с минимальными долями. Используйте данную разработку — ведь не всегда вы сможете проследить все комментарии. Если же есть необходимость в неиспользовании плагина на какой-либо странице сайта, то есть соответствующие настройки, которые позволяют отключить маскировку.

WP-reCAPTCHA

Одно из самых популярных решений, суть которого заключается в вводе текстового кода с предоставленных картинок. При правильности данных можно отправить сообщение. Весьма хорошо защищает от автоматических роботов, однако всё же «пробивается» сервисом антигейт, который изначально был создан для благих целей. К примеру, он и сейчас используется seo оптимизаторами для упрощения работы с программами. Если вы до сих пор нечего об этом не знаете, то советую протестировать его работу при помощи . Для его активации WP-reCAPTCHA необходимо перейти на официальный сайт разработчика и выполнить пару шагов для получения Public/Private Key. Всё весьма просто!

CAPTCHA

Расширение показывает небольшое арифметическое вычисление, в котором пропущено одно значение. К примеру: 8+___=9. При правильной вставки цифры комментарий отправляется в публикацию. Позволяет задавать сложность: сложение, умножение, вычитание, а также заменять цифры словами. Довольно действенны метод — ведь спамеры ещё толком не научились решать задачки. Рекомендовано при неэффективности прочих способов!

Cookies for Comments

Система, которая позволяет на программном уровне определить и отсечь более 90% спама. Дело в том, что при загрузки страницы в браузере сохраняется файл Cookies, а при дальнейшей публикации сообщения проверяется его наличие. Если такового нет, то комментарий уходит в спам. Программные решения, которые как раз и засоряют блоки обходятся без обращений к странице, а значит у них и нет этого заветного файлика. Замечательно показал свою работу даже без связки с дополнительными защитами!

Akismet

Модуль позволяющий проводить автоматическую проверку новых комментариев по базе спама. Также добавляется статистика кол-ва одобренных сообщений для каждого пользователя. Расширение уже установлено в стандартных комплектация вордпресса. Однако, для его работы необходимо произвести активацию и регистрацию на сайте разработчика. При этом, при переходе по ссылке «получить API-ключ» которая отображается рядом с Akismet в списке плагинов вам нужно будет ввести email, пароль и логин, а на втором шаге бегунком выбрать 0 $ — т.е. бесплатный режим. После этого скопируйте API ключ и введите его в соответствующее поле в настройках к этому компоненту.

Contact Form 7

Довольно хороший инструмент создания форм обратной связи, который в связке с «Really Simple CAPTCHA» позволяет снизить спамерские сообщения — благодаря защите каптчей. Комментарии, которые будут приходить к вам на почту, будут от людей, а не от роботов. Я упомянул Contact Form 7 не спроста! Дело в том, что алгоритмы участвующие в отсылке заданного текстового контента с включенным в него ссылками затрагивает абсолютно все блоки, через которые можно что-либо отправить. При этом формы обратной связи не остаются без внимания!

Disable / Hide Comment URL

Удаляет пункт «Сайт» в блоках комментирования статей. Это решение не только снижает интерес к ресурсу со стороны спамеров, но и заставляет обдумывать ответ пользователей — ведь теперь они пишут не для ссылочной наживы!

Disable Comment Author Links

Блок «Сайт», который изначально открыт для заполнения, делает обязательное для заполнения поля «Имя» активной гиперссылкой. Упомянутый компонент как раз и удаляет эту связь не только для новых сообщений, но также и для опубликованных ранее. Вам не придётся обрабатывать в административной части старые комментарии от URL адресов.

Методы ручной защиты wordpress от спама

К сожалению, но только лишь плагинами в некоторых случаях нельзя обойтись (к примеру при использовании специфических тем, глобальной переработке ресурса). Также дополнительные расширения нагружают CMS систему — т.е. использование их в большом количестве при возросшем объёме посетителей может привести к перегрузке хостинга. Именно по этой причине я указал лишь основные. Если же что-то пропустил — поправьте меня в комментариях ниже.

Итак, теперь рассмотрим правки в коде. Если вы не знакомы с html, но так или иначе пользовались ФТП, тогда вам не составит большого труда отредактировать необходимый файл. Для верности сделайте бекап ресурса — это не будет лишней подстраховкой.

Удаление блока URL (Сайт) в формах комментирования статей

Если по какой то из причин вы не хотите использовать выше упомянутое расширение, которое как раз и убирает блок для установки WWW адреса, тогда проделайте следующие действия. Во первых найдите файл comment.php, который лежит по пути wp-content/themes/имя_используемой_темы/. Далее найдите и удалите следующий код (перед эти сохраните редактируемый документ — возможно вы допустите ошибку):

Если поиски не увенчаются успехов (в различных модификациях тем код может различаться), то поищите строку, которая содержит comment_author_url, name=»url» или id=»url» и внешне схожа с вышеупомянутым php текстом.

Защищаемся от спам-программ

Автоматический скрипт обходит саму страницу, на которой и находятся формы для заполнения. Он использует определенный алгоритм post запросов, который сводит в нет удаление URL блока. Однако, можно также поставить палки в колёса для таких ботов. Для этого зайдите в корневую папку ФТП вашего проекта и отредактируйте файл wp-comments-post.php. Необходимо найти строку, которая начинается с $comment_author_url и заменить её на $comment_author_url = «»;

Подытожим

На сегодняшний день не существует идеальной системы, которая способна в полной мере удовлетворить дизайнерские идеи, требования программиста, а самое главное — SEO оптимизатора. Любой движок необходимо дорабатывать — это нормально! Правила, которые приведены в вышеупомянутом тексте позволяют отредактировать лишь один, однако весьма важный компонент. В последующий редакциях мы ещё не раз затронем защиту wordpress не только от спама, но и от других действий черных оптимизаторов. Развивайте свой сайт и не позволяйте на этом наживаться другим!


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

Вторым путем защиты для защиты WordPress от спама есть использование различных плагинов . Мы предлагаем вам ознакомится с наиболее популярными бесплатными WP Spam-Shield Anti Spam, Antispam Bee, Akismet и CleanTalk (платный).

WP Spam-Shield Anti Spam

  • работает с всеми популярными плагинами и плагинами для работы с электронной коммерцией на сайте;
  • предоставляет зашиту от спам ботов и другого вида спама;
  • работает с JS/Cookies Anti-Spam Layer и Algorithmic Anti Spam Layer;
  • частично защищает сайт от SQL внедрений и XSS уязвимостей;
  • обещает ноль ложных срабатываний;
  • использует спам фильтр очереди, который анализирует информацию, прежде чем она попадает в базу данных WordPress;
  • останавливает спамовые попытки регистрации.

Antispam Bee

  • Различает Спам IP-адреса и требует авторизации для оставления комментариев;
  • плагин не требует авторизации для использования и не собирает персональной информации;
  • авторизация в системе по желанию;
  • плагин поддерживает автоматическое удаление спама и выбор страны для блокировки;
  • разрешает оставлять комментарии только на одном языке;
  • бесплатный даже для коммерческих проектов.

Akismet

Защитник от спама для всех сайтов на WordPress по умолчанию. Плагин представляет отличное решения по защите сайта причем совершенно бесплатно.

  • Автоматическая проверка всех комментариев и использование спам фильтров, также у вас останется возможность модерировать комментарии время от времени.
  • Сохраняется история комментариев, что позволяет пользователю проверить, был ли его комментарий отмечен как спам Akismet или модератором
  • поддерживает способность полностью избавиться от спама, эффективная даже для худших видов спама
  • поддерживает работу на 24 языках

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

Стоит также отметить, что для большинства сайтов достаточно будет стандартного Akismet для защиты от спама . Бесплатный тариф Akismet предусматривает 50000 проверок комментариев, после превышения данного числа проверок предлагается пользователю пользователю перейти на ежемесячный тариф стоимость 5 дол.

Бесплатных плагинов волне достаточно для защиты от самых распространенных атак, но если вас интересует приложения премиум уровня, то вам стоит ознакомится с функционалом Anti-Spam By Clean Talk. За 8 дол. год Вы можете получить полную защиту от спама сайта. Данный плагин обрабатывает 1.5 до 2 миллионов запросов ежедневно, 99,8% из которых обозначаются как спам.

CleanTalk – это облачная система защиты для ограничения спама в комментариях , при регистрации, рассылки через контактные формы и создания трекбеков. Кроме того, плагин также фильтрует заказы, виджеты и емейл рассылки. Плагин определяет и останавливает спам не использую капчи или других техник. CleanTalk использует похожие принципы работы что и бесплатные плагины. Процедура работы плагина происходит путем распознавания спама по следующим признакам:

Защита от спама в WordPress чаще всего представлена плагином Akismet , который де-факто считается основным способом защиты от авто-спама в WordPress. Но ряд неудобств, сопряженных с использованием этого плагина (Получение Akismet API key, Настройки в Админке, Необходимость регистрации на WordPress.com, Необходимость постоянной очистки папки спам) зачастую отпугивает простого пользователя от включения Akismet в свой сетап по умолчанию. Тем более что существует ряд не менее эффективных в использовании, но гораздо более простых решений.

Самый простой, и очень надежный способ, это использовать Плагин от KAMA для защиты от спама в комментариях WordPress Он не имеет настроек, скачиваете , устанавливаете, активируете, если комментарии после активации оставляются, значит плагин работает. В противном случае при отправке комментария вы увидите сообщение «Comment is blocked! Press the botton to send your comment one more time:».

Защиту от спама плагином можно проверить на Специальной страничке имитирующей спам-программу, пройдите по ссылке и попробуйте оставить комментарий у себя на блоге. Попробуйте выключить плагин и снова оставить комментарий и вы увидите, что плагин работает.

Защита от спама. Преимущества плагина KAMA:

  1. Никаких каптчей, чекбоксов (галочек), картинок и прочей античеловечности. Присутствие плагина визуально никак не проявляется;
  2. Никакого авто-спама!
  3. Не мусорит админку оповещениями, и дополнительными настройками.
  4. И наконец он просто - РАБОТАЕТ 🙂

Если Вы, как и я, не сторонник использования плагинов, то можно воспользоваться таким очень простым методом. Суть метода очень проста. В форму отправки комментариев добавляем скрытое для пользователя поле, помеченное как обязательное к заполнению. Роботы для авто-спама - заполнят это поле, и у нас будет критерий, по которому можно отсеивать спам комментарии. Для пущей надежности, можно добавить еще один критерия проверки, основанный на том, что спам-боты не умеют выполнять программы на JavaScript . И если на кнопку «Отправить» нажмет человек, то при нажатии на кнопку выполнится JavaScript код, в результате выполнения которого в скрытое запишется значение «StopSPAM» . А в случае с роботом переменная так и останется пустой.

И все что останется предпринять — это проверить в скрипте чему равна полученная переменная, если она равна проверочному слову «StopSPAM» , значит сообщение отправил человек. Ну а в противном случае, - это робот.

Итак, делаем 2 проверки:

В форму добавления комментария добавляем скрытое поле с именем name=»check» и пустым значением value=»»,

// Скрытое поле заполняемое JS при нажатии кнопки Отправить // Визуально скрытое поле не заполняемое пользователем

В кнопку оправки формы добавляем JavaScript код:

// JavaScript код в кнопке отправки формы

В общем случае, необходимо внести следующий код в php-скрипт, который проверяет данные из формы:

// Проверка заполнено ли поле, да - бот, нет - пользователь if(!empty($_POST["check2"])) exit("Это поле не нужно заполнять"); // Если в поле есть StopSPAM значит JS выполнялся if ($_POST["check"] != "StopSPAM") exit("Защита от спама. Включите JavaScript!");

Конкретно для WordPress, необходимо внести изменения в php-скрипт, который проверяет данные из формы комментариев. Находим в /wp-comments-post.php такой код:

If ("" == $comment_content) wp_die(__("ERROR: please type a comment."));

И вписываем сразу после него:

If ($_POST["check"] != "StopSPAM") wp_die("Ошибка: Защита от спама. Включите JavaScript."); if (!empty($_POST["check2"])) wp_die("Ошибка: Это поле не нужно заполнять");

Добавляем проверку так же и в форму обратной связи (если онау Вас присутствует).

На одном из моих проектов, где доступна регистрация пользователей и постинг заметок от их имени, значительно увеличилось количества спама. И если с похожей проблемой для комментариев помогает справиться , то в данном случае пришлось искать другое решение. Раньше я удалял новых пользователей по одному через админку вордпресс (по 10-20штук в неделю это не проблема). Однако сейчас спам регистраций насчитывается больше сотни за пару дней. Тратить на это время каждый раз неохота, поэтому решил всерьез разобраться с негодниками. Пост состоит из двух частей — первая защита от спам регистраций, а вторая — удаление неактивных пользователей.

Защита от спам регистраций

Очевидно, что для этого решения будем использовать каптчу. Как-то в блоге я публиковал заметку про , где были:

  • Captcha Code — картинка с простыми цифрами (такие ломают чаще всего).
  • WP-reCAPTCHA — плагин относительно старый плюс для работы надо получить ключ.
  • Secure CAPTCHA — еще один древний модуль, что не обновлялся более 2х лет.
  • Captcha by BestWebSoft — математическая каптча.
  • SI CAPTCHA Anti-Spam — самый популярный модуль со множеством настроек.

Ничего плохого не могу сказать про последний вариант, просто мне хотелось настроить все максимально быстро и просто. В итоге выбрал Captcha by BestWebSoft, где пользователю нужно ввести недостающее число в уравнении.

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

После установки плагина Captcha by BestWebSoft нужно указать некоторые настройки каптчи.

Здесь определяете:

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

После установки настроек, сохраняете их.

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

Update 15.07.2015. К сожалению, плагин Captcha by BestWebSoft, а затем и SI CAPTCHA Anti-Spam не смогли защитить от спам регистраций на сайте. Поток ботов уменьшился, но в целом результат каптчи не удовлетворительный. Пришлось искать другое решение — . Данная каптча от Google действительно справилась со своей задачей, за несколько дней не было ни одного случая регистрации ботов. Рекомендую!

Удаление неактивных пользователей

  • найти пользователя по логину, который отображается для последней добавленной спам заметки;
  • кликнуть «Удалить» по соответствующему юзеру в результатах поиска;
  • отметить галочку «Удалить все посты» для данного пользователя и подтвердить удаление.

Как видите, тут нужно сделать далеко не один клик, плюс ждать загрузку той или иной страницы админки. Опять же, если спам регистраций у вас с 10-ток, то выполнить все эти действия не проблема, но если пользователей накопилось пару сотен/тысяч, нужно использовать массовое удаление.

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

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

Что же касается Inactive User Deleter, то работать с ним достаточно просто. После установки заходите в раздел «Пользователи» пункт меню Inactive users.

Здесь есть несколько параметров выборки юзеров:

  • пользователи без одобренных комментариев;
  • имеющие спам комментарии;
  • не разместившие никаких записей на сайте;
  • созданные более чем Х дней назад;
  • уровень пользователей;

Для удобства есть также выбор сортировки результатов. Хорошо, что по каждому юзеру отображается вся статистика — число постов, комментариев. Для массового удаление просто отмечаете несколько (или всех сразу) пользователей. Единственное, чего не хватает — выборки пользователей по дате создания. То есть модуль Inactive users ориентирован в первую очередь на старые регистрации, которые спустя некоторое время так и не были активны. Вывести, скажем, всех юзеров за последние 2-3 дня не получится (только через phpMyAdmin и редактирование базы данных напрямую).

Напоследок пару слов о модуле Stop Spammers Spam Prevention , который достаточно часто упоминают при борьбе со спам регистрациями.

Плагин позволяет бороться со спам регистрациями и спамом в комментариях. Он содержит около 20-ти разных проверок, позволяющих предотвратить попытки спама на вашем сайте. Если же они выявлены, то пользователю всегда предоставляется второй шанс — ввод каптчи (с помощью разных плагинов). Каптча позволяет юзеру подтвердить, что он не бот или спамер. В принципе, решение интересное, хотя я его лично и не использовал. Возможно, вам в работе пригодится.

». Второй плагин однозначно лучше, но в некоторых шаблонах он работа неправильно. До написания этой статьи, у меня был установлен именно этот плагин.

Это хороший плагин, но я нашел другой способ, как защитить свой блог от спама. Этот способ позволяет установить защиту WordPress вообще без плагинов, но нужно немного полазить в кодах. Способ этот я тестировал в течение двух суток, и не один спам не просочился.

Если на Вашем сайте установлен плагин «Akisment », о котором до сих пор пишут блоггеры, то я советовал бы Вам избавиться от него. Не могу понять, что хорошего в нем нашли?

Плагин этот не доработан, и нормальные комментарии иногда попадают в «СПАМ », поэтому за этим надо всегда следить. Уж если Вы не любите возиться с кодами, то почему бы Вам не установить плагин «Invisible Captcha »? Этот плагин действительно хороший, хотя я ни разу не видел, чтобы о нем кто-то писал. У меня он был установлен года 4, если не больше.

Метод, который я предлагаю Вам использовать сегодня – защищает сайт 100% от СПАМа. То есть, Вы один раз настраиваете защиту, и забываете, что СПАМ вообще существует. Плюс к этому, Вы удалите один плагин с Вашего сайта.

Для установки и настройки защиты от СПАМа, понадобиться подредактировать некоторые файлы шаблона, а именно: comments.php, style.css и functions.php . Для начала нужно узнать, какая функция выводит поле для ввода текста в комментариях.

Откройте любую статью и прокрутите вниз до формы комментариев. Кликните правой клавишей мыши по этому полю, а затем в контекстном меню выберите «Просмотр кода элемента », или что-то в этом роде. В разных браузерах эта строка в меню называется по-разному.

Появится окошко для веб-разработчиков. Вы увидите такую строку, или похожую на нее.

XHTML

Смотрите еще скриншот

Во многих шаблонах за вывод текстового поля отвечает тег textarea . Этот тег Вы видите в коде и на скриншоте. Эту строку нужно найти в файле comments.php .

Внимание!

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

Для того чтобы быстро отредактировать файл, можно воспользоваться редактором WordPress: «Внешний вид » -> «Редактор ». Найдите файл comments.php , а затем найдите в нем строку с тегом textarea .

Для быстрого поиска, нажмите на клавиатуре «Ctrl » + «F ». Появится поисковое поле для ввода текста, напишите в нем слово «textarea » без кавычек. Должна автоматически найтись строка с этим кодом.

Скопируйте эту строку полностью и вставьте ее ниже, сразу под этой строкой. У Вас должно получиться так:

То есть, должно быть одинаковые две строки. Теперь нужно сделать в верхней строке некоторые изменения. К атрибуту name и id подставив слово «main » без кавычек. Должно получиться так:

Если хотите, чтобы в поле для комментариев показывало подсказку, как у меня в блоге, тогда добавьте к верхней строке следующее:

placeholder="Введите текст комментария"

Теперь верхняя строка должна выглядеть так.

XHTML

С этим файлом разобрались. Сохраните его.

Редактируем файл стилей style.css

Теперь на Вашем сайте появилось второе поле комментариев, но Вы его можете не увидеть, если на сайте установлен плагин кэширования, например, WP Super Cache , или подобный ему.

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

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

/*скрываем форму комментария*/
#comment {display:none;}

Редактируем файл function.php

Осталось подключить фильтр, который будет проверять заполнение полей. Если заполнено первое поле, тогда комментарий считается нормальным, и он остается на блоге, а если заполняется второе, тогда комментарий считается СПАМ и он удаляется.

Открываем файл function.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["main-comment"]); $_POST["comment"] = $comment_content; return $commentdata; } /*фильтр для спама*/

/*фильтр для спама*/



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: