Как избавиться от спама в WordPress. Защита WordPress от спама с помощью хака подмена полей! В админке появился чужой спам комментарий wordpress

Друзья, всем привет. Сегодня буду говорить о наболевшем. Уверен, каждый владелец сайта рано или поздно сталкивается с проблемой СПАМа. Как правило, это проблема появляется, когда блог начинает развиваться. Я вот поначалу, создал блог и не напрягался по этому поводу, ну был один–два спам-комментарий в день, так я их легко убирал вручную. Но, дальше хуже, спама всё больше и больше. Тогда я решил выбирать из двух зол.

Решил пожертвовать ресурсами сервера, но избавится от спама. Установил и активировал плагин . Результат меня порадовал, 99% защиты от спама. Хотя это может быть и 100%. Но, у этого плагина свои алгоритмы работы и иногда хорошие комментарии попадают в спам.

Поэтому я не стал автоматически очищать папку спам, проверяю её и выдёргиваю хорошие комментарии, если они туда попали. Ну и казалось бы всё хорошо, так вот теперь надоело просматривать папку СПАМ. В последнее время у меня не так много времени, и успеваю просматривать блог пару раз в день. Так, за день у меня бывает до 250 спам-комментариев. Вот пример, сегодня до обеда уже 78 комментариев в папке спам.

А ещё есть «чудесники», которые занимаются ручным спамом. Но для них есть свои рычаги воздействия. Мы же поговорим, как избавиться от автоматического спама, рассылаемого спам-ботами. И при этом не придётся чистить папку СПАМ.

Суть метода

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

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

Как создать подмену формы комментария

Шаг 1. Определяем, какой функцией выводится поле «Текст комментария»

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

В контекстно-зависимом меню нажмите на пункт «Исследовать элемент» (или что-то подобное, в разных браузерах по-разному).

А теперь посмотрите на исходный код:

Во многих темах за вывод текстового поля в форме отвечает textarea, поэтому в исходном коде вы увидите вот такую строку, или что-то похожее.

Эту строчку кода нужно будет найти в файле comments.php . Если подобной строки кода у вас нет, то реализация вашего случая будет описана в конце статьи.

Шаг 2. Создаём дубликат текстового поля «Текст комментария»

Переходим в административную панель WordPress – раздел «Внешний вид» «Редактор» . Открываем для редактирования файл comments.php . Находим в этом файле текстовое поле для ввода комментария. Нажмите CTRL+F и ищите textarea.

Теперь нужно скопировать весь этот код и вставить его ниже. У вас должно получится две одинаковые строчки кода.

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

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

Тогда вся строчка кода будет выглядеть вот так:

Сохраняем внесённые изменения.

Шаг 3. Скрываем оригинальное поле «Текст комментария»

Сейчас, если вы посмотрите на свою форму комментария, то у вас будет два текстовых поля. Одно из них нужно скрыть. И поможет нам в этом идентификатор (id). Этот идентификатор можно использовать для придания стиля. Хотя можно определить стиль прямо в строке с кодом текстового поля, но мы это будем делать в файле style.css . Это тоже ради поддержания высокой скорости загрузки сайта.

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

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

Шаг 4. Подключение фильтра для проверки комментариев.

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

Для этого открываем файл функции темы (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["main-comment "]); $_POST["comment"] = $comment_content; return $commentdata; } /*фильтр для спама*/

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

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

Вот и все готово теперь нужно подождать и проанализировать, сколько комментариев попало в папку спам. По идее ваша папка спам будет пуста, а на блоге будут появляется только одобренные комментарии.

Что делать если текстовое поле формируется не через textarea

Если при просмотре файла comments.php, вы не обнаружили текстового поля textarea. Значить у вас стандартная форма комментариев выводится через функцию comment_form . Как правило, работа этой функции прописана в файле функции темы (functions.php ). Вы легко сможете её найти с помощью поиска CTRL+F. В общем, вам нужно сделать дубликат формы комментариев. Для этого найдите в файле подходящее место, как я показывал выше, и вставьте вот этот код:

/*новая форма комментария*/ add_filter("comment_form_defaults", "change_comment_form_defaults"); function change_comment_form_defaults($default) { $commenter = wp_get_current_commenter(); $default["comment_notes_after"] .= "

"; return $default; } /*новая форма комментария*/

Теперь вставьте код для проверки на спам, который я приводил в четвёртом шаге. Сохраняете файл функции темы (functions.php) и переходите в файл таблица стилей (style.css).

Здесь нужно добавить стиль для сокрытия стандартного текстового поля ввода комментария.

Comment-form-comment {display: none;}

Всё, задание выполнено. Теперь спам не пройдёт.

Кстати, если ваша стандартная форма отличается по ширине и по высоте, то измените параметры строк и колонок (rows="8" cols="45") .

Итак, дорогие друзья, подвожу итоги. Статью я писал два дня, и за это время не одного спам-комментария. Папка СПАМ пуста и я очень доволен. Так что берите метод на вооружение и не тратьте своё время на просмотр спам-комментариев. А ещё советую посмотреть статью о создании . Принцип защиты у них схожий.

Также посмотрите видеоурок, так этом метод станет для вас ещё понятней.

На этом у меня сегодня всё, желаю вам удачи и 100%-е отсутствие спама. Всем пока, и до встречи в новых статьях и видеоуроках.

Дополнение: после обновление WordPress до версии 4.4 и выше, этот способ нуждается в доработке. И вот на эту тему.

С уважением, Максим Зайцев.

Ребята привет! С вами Саша Борисов! Скажите, бывали ли с вами такие случаи, заходишь на чей-то блог, читаешь классную статью, хочешь оставить комментарий и так лень напрягать мозги для того чтобы вводить капчу (защиту от спам-роботов)? Я думаю не раз.

Ну вы же не спамер правда? А вот в целях защиты ее вводить нужно и нужно это для владельца блога, а не для вас. Кстати из-за того, что на многих блогах стоит защита от спама (капча), статьи мало комментируют. Это факт. В этой статье я поведаю вам о том, от спама в комментариях без капчи, а так же расскажу какие вообще существуют плагины для борьбы со спамом на движке wordpress.

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

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

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

Итак начнем. Какие лично я знаю плагины защиты от спама в комментариях.

1. Math Comment Spam Protection — хороший плагин защиты от спама. Сам им пользовался раньше пока не узнал о более эффективном плагине защиты от спама, о нем я расскажу позже. Плагин Math Comment Spam Protection создает математическую задачу при добавлении комментария.

Перед тем как оставить комментарий на блоге человек должен решить определенный математический пример, допустим: сколько будет 4 + 7, 6 + 13, 2 + 5 и т.д.

5. Simple CAPTCHA — говорят отличный плагин для защиты от спама. Эта капча является одной из самых эффективных капч для wordpress. Не знаю почему, но лично на моем блоге она не работает. Не то что не работает, ее вообще не видно. Скачал плагин, закинул в папку с плагинами, а wordpress его не видит. Странно. Ну да ладно, не беда, есть другие плагины.

Если у вас плагин будет работать — супер! Установка та же. Скачиваете плагин , закидываете в папку с плагинами и активируете.

6. SI Captcha Anti-spam — еще один плагин защиты от капчи. Эффективный, но тяжелый, в смыле вести много кб. Скачать плагин . Установка все та же. В админке можно настроить плагин на русский язык. В капче есть возможность прослушать звук. =)

7. — классный плагин защиты от спама. Он не просто красивый он еще и призывает людей к тому чтобы оставить комментарий на вашем блоге. Для того чтобы читатель оставил коммент ему нужно крутить картинки и поставить их вертикально. Забавно да? Мне лично очень нравиться =)

Для этого откройте файл comments.php темы вашего блога, найдите там строчку — ID); ?> и переместите ее выше на несколько строк, а именно над строкой

Теперь копируете эту строку (не мою, а свою, в вашем файлике comments.php) и вставляете сразу за самой собой, чтобы получилось примерно так:

Если заметили, то я во второй строке заменил name="comment" id="comment" на name="struktura" id="struktura" . Вы должны сделать то же самое, но только вместо struktura использовать можно все, что угодно (потом просто замените это в коде фильтра приводимого чуть ниже).

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

Поэтому следующим шагом будет открытие файлика style.css из папки с вашей темой оформления. Где-нибудь внизу его можете дописать:

#comment {display:none;}

После чего первая (фиктивная) форма для комментариев исчезнет со страниц вашего блога на WordPress. Все просто, но мне тут нашептали, что следует избегать из-за опасений навлечь немилость поисковиков (не знаю оправданы ли эти опасения) — типа вы что-то скрываете, делая часть сайта невидимой для посетителей (некий отдаленный аналог клоакинга получается).

Textarea#struktura {margin-top:-60px;overflow:hidden; } textarea#comment input {margin-top:10px;}

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

Итак, нужного визуального эффекта мы добились. Осталось еще добавить фильтр, который бы отключал добавление комментариев через первую (основную по умолчанию) форму и передавал бы ее полномочия второй форме, которая будет доступна посетителям. Для этого нужно будет открыть (архиполезный) и добавить в него (аккуратно, чтобы не поломать уже имеющийся там код) этот фильтр (не забудьте заменить struktura на то, что использовали вы):

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["struktura"]); $_POST["comment"] = $comment_content; return $commentdata; }

Все, теперь сохраняете произведенные изменения во всех трех файликах и проверяете работоспособность формы отправки комментариев на вашем блоге. Возможно, что со стилями вам чуток придется повозиться, чтобы как следует спрятать первую (фиктивную) форму, ну, а вообще, на все про все у меня минут пять и ушло. А у вас?

Удачи вам! До скорых встреч на страницах блога сайт

Вам может быть интересно

Смайлики в WordPress - какие коды смайлов вставлять, а так же плагин Qip Smiles (красивые смайлики для комментариев)
reCAPTCHA - простейшая капча Я не робот от Google Как отключить комментарии в WordPress для отдельных статей или всего блога, а так же убрать или наоборот подключить их в шаблоне
Как войти в админку WordPress, а так же поменять логин и пароль администратора выданные вам при установке движка Граватар - как создать глобальный аватар и настроить вывод иконки Gravatar в теме Вордпресса Пустая страница при просмотре больших постов (статей) в WordPress Пропало левое меню в админке WordPress после обновления Где скачать WordPress - только с официального сайта wordpress.org
Оптимизация и сжатие CSS в Page Speed - как отключить внешние файлы стилей и объединить их в один для ускорения загрузки
Как писать статьи в WordPress - визуальный и Html редакторы, заголовки и выделение ключевых слов Бесплатные темы и шаблоны для 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 не только от спама, но и от других действий черных оптимизаторов. Развивайте свой сайт и не позволяйте на этом наживаться другим!