Убираем спам регистрации для постинга в WordPress. Защита WordPress от спама с помощью хака подмена полей

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

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

Шаг 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 и выше, этот способ нуждается в доработке. И вот на эту тему.

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

Открывая несколько лет назад данный блог я конечно имел представление о спамерах, но я даже и думать не мог, что с развитием проекта проблема станет столь острой. После того, как посещения в день достигли отметки 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 комментарии, про спам комментарии в блогах. Я думаю, Вам как и мне, уже надоело постоянно заходить в папку «спам» и вручную перебирать комментарии автоматического или еще хуже ручного спама. После чего выискивать в этой куче хлама хороший, осмысленный комментарий, который затесался в папку спам комментарии по ошибке.

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

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

Суть метода!

Для ручного спама мы как всегда поставим плагин «Akismet» . Я думаю, он должен стоять практически у каждого блоггера. Если еще не стоит, то в интернете есть масса литературы про то, как его поставить и как активировать. Данный плагин будет защищать наш блог от ручного спама в комментариях. А хак «подмена полей», в свою очередь, защитит блог от авто спама.

Думаю, стоит отметить два больших плюса такого танца с бубном: первое — избавляемся от постоянной проблемы авто спам и второе — больше не придется править файлы движка после обновления WordPress. Правда как всегда есть и минус, придется подшаманить два файла в нашей теме, comments.php и style.css . Но как по мне, данный минус незначителен.

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

Для ваших читателей и посетителей все останется как раньше, но теперь они будут заполнять видимое поле real-comment . А вот спам-скрипты будут заполнять стандартное поле comment , которое мы скроем. Они-то не понимают, что человек не сможет заполнить текстовое поле, которое не видно на страницах блога. Вот тут мы и подловим спам комментарий, ведь такой комментарий определится по заполненному невидимому полю comment .

В общем, все просто как дважды два. Человек заполняет видимое поле real-comment , а спам-скрипт заполнит по старинке стандартное поле comment , но уже невидимое. Заполненное невидимое поле и будет спам комментарием! :-) Думаю самое время приступить к делу!

1. Комментарии через функцию «comment_form ()»

Если у вас комментарии выводятся через функцию comment_form() (эта функция была введена в WordPress 3.0 для того, чтобы с помощью файла functions.php , можно было полностью заменить стандартную форму комментариев). Если ваш шаблон использует именно такую функцию, то необходимо открыть файл functions.php и добавить туда следующий код:

//Добавление своего поля для ввода комментария 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; } //END добавление своего поля для ввода комментария

Теперь скрываем наше стандартное поле comment , через файл «style.css» :

Comment-form-comment {display: none;}

Итак, с первой частью хака мы справились. Теперь у нас есть поле real-comment , которое видит и может заполнить посетитель, и стандартное поле comment , которое скрыто! В следующем шаге нам необходимо определить, какое из данных полей пропускать, а какое запрещать. Если заполнено видимое поле, то пропускаем, а если заполнено невидимое поле, то запрещаем. Для этого открываем файл functions.php и добавляем туда код:

2. Комментарии не через функцию «comment_form ()»

Если у вас комментарии выводятся не через функцию comment_form() , как у меня! В этом случае открываем файл comments.php и находим там код, выводящий поле для ввода комментария. Что-то похожее на:

Данный код необходимо заменить на:

Теперь надо скрыть стандартное поле для ввода комментария. Для этого откройте файл стилей вашего шаблона «style.css» и добавьте туда код:

No-spam {position: absolute; left: -1000px;}

No-spam {display: none;}

Также и в данном способе не забываем добавить код в файле 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["real-comment"]); $_POST["comment"] = $comment_content; return $commentdata; } //END проверка на спам

Вот в принципе и все! Теперь спам комментарии больше вас и ваш блог не потревожат. Если вы сомневаетесь, все ли сделали правильно, можете проверить работу данного хака по защите wordpress от спама. Для этого необходимо убрать из файла style.css внесенные изменения, обновить страничку блога, заполнить каждое поле комментариев и попытаться опубликовать комментарий!

Все вопросы, пожелания и замечания, пишите в комментариях к статье.



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

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

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