Seo-Бизнес блог Progress-project

Все о создании, продвижении сайтов и заработке в интернете

Обновлённый дизайн блога Progress-project
logotip «Progress-project»
logotip «Progress-project»

Защита блога от спама в комментариях без плагина

Добрый день, сегодня на «Progress-project» мы рассмотрим достаточно важный момент в создании блога который никак нельзя обойти, мы поговорим о защите вашего блога от спама.

Как спам может навредить вашему ресурсу?
Если вы не защитились от спам-ботов то есть большой риск попадания его под поисковые санкции.

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

Еще такие боты могут принести вам на сайт вредоносный код а то и вообще затащить вирус.

Да и посетители будут не так охотно оставлять среди спама свои комментарии.

Популярные плагины для борьбы со спамом

Для защиты от спам-ботов на просторе всемирной паутины существует достаточно много специальных плагинов.

Например таких, как «invisible-captcha» — (невидимая капча).
Очень хороший плагин совершенно невиден для посетителя но вполне реальный для спам-бота.
Но подходит данный плагин к сожалению не для всех блогов. Довольно часто после публикации комментария посетитель видит ошибку в виде текста: (не спамьте пожалуйста. Этот сайт защищен.
Включите JavaScript в вашем обозревателе и попробуйте еще раз…).

Следующий плагин способный защитить ваш блог от спама носит название:
«Math Comment Spam Protection» — данный плагин задаёт простенькую математическую задачу.

Дальше у нас идёт плагин:
«DCaptcha» — ещё его называют веб-мастера «я не бот».

«Akismet» — на мой взгляд самый эффективный плагин борьбы со спамом.
Подробней о данном плагине можно прочитать здесь.

Защита блога от спама без плагина

Но при всех достоинствах плагинов есть один существенный недостаток.

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

Особенно это станет заметно тогда когда посещаемость вашего блога перевалит за 300 уникальных посетителей в сутки.

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

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

Защищаем свой ресурс от спама подменой полей ввода

К примеру зашёл на ваш блог бот и начал разыскивать в файлах стандартную форму ввода, как правило под названием — comment.

Большинство ботов запрограммированы именно на поиск форм под определённым названием.

И по этой причине нам нужно создать поле со своим оригинальным названием.

Так, как мы в основном рассматриваем в наших статьях блоги на движке WordPress значит и функции отвечающие за комментарии будут: «comments_form();» или «comments_template();».
Именно один из них выводит форму комментариев и на вашем ресурсе.

Чтобы вам узнать какая именно функция отвечает за вывод комментариев в вашем шаблоне откройте в Notepad++ файл single.php и с помощью поиска определите какую функцию из двух мной перечисленных редактор найдёт та и отвечает за вывод комментариев в вашей теме.

Для примера я выбрал функцию под названием: comments_template(); так-как это самый распространённый вариант.

Далее нам понадобится файл темы: functions.php.

Здесь в начале файла перед таким тегом «<?php» вставляем переведённый ниже код:

function replacing_the_field_of_comments($commentdata) {
 $spam_test_field = trim($_POST['comment']);
 if(!empty($spam_test_field)) wp_die('Спам не пройдет!');
 $comment_content = trim($_POST['antispam_comment']);
 $_POST['comment'] = $comment_content;
 $comment_author = trim($_POST['rokki']);
 $_POST['author'] = $comment_author;
 $comment_author_email = trim($_POST['balboo']);
 $_POST['email'] = $comment_author_email;
 $comment_author_url = trim($_POST['stalone']);
 $_POST['url'] = $comment_author_url;
 return $commentdata;
}
add_filter('pre_comment_on_post', 'replacing_the_field_of_comments');

Дальше в «comments.php» нужно найти строку вот такую или что-то похожее на неё.

<textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea>

Эта самая строчка нечто иное, как наша форма комментариев.

И именно её мы и подменим для ботов. А точнее добавим ниже ещё одну форму и чуть изменим существующую.

Итак меняем выше указанную строчку на эту:

<textarea id="comment" style="display: none;" name="comment"></textarea>
<textarea class="textarea" id="antispam_comment" tabindex="4" cols="100%" name="antispam_comment" rows="10"></textarea>

Давайте подробней рассмотрим, что мы изменили.

Первое мы изменили «comment» стандартное имя на «antispam_comment».

И в добавок ко всему спрятали под стили часть поля.

style="display: none;"

Например если мы с вами уберём эти стили то у нас получится на блоге сразу две формы комментариев.

Теперь бот при попытки добраться до реального поля непременно попадёт в фильтр установленный нами в файле «functions.php».

Вот такой простой и достаточно эффективный способ защиты блога от спам-ботов без плагина.

Но давайте ещё больше защитим наш ресурс.

Анти-бот — защищаем ресурс от спам-ботов при помощи подмены стандартных названий на собственные

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

Поэтому мы изменим стандартные имена полей на свои уникальные.

Для этого в том-же «comments.php» нам нужно найти строки похожие на эти:

<p><input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> />
<label for="author"><small><?php _e('Name', 'kubrick'); ?> <?php if ($req) _e("(required)", "kubrick"); ?></small></label></p>
<p><input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> />
<label for="email"><small><?php _e('Mail (will not be published)', 'kubrick'); ?> <?php if ($req) _e("(required)", "kubrick"); ?></small></label></p>
<p><input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" />
<label for="url"><small><?php _e('Website', 'kubrick'); ?></small></label></p>

Далее здесь наша задача заключается в том, чтобы заменить стандартные имена на свои.

name="author"
name="email"
name="url"

После проделанной работы результат должен быть примерно такой:

<p><input type="text" name="rokki" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> />
<label for="author"><small><?php _e('Name', 'kubrick'); ?> <?php if ($req) _e("(required)", "kubrick"); ?></small></label></p>
<p><input type="text" name="balboo" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> />
<label for="email"><small><?php _e('Mail (will not be published)', 'kubrick'); ?> <?php if ($req) _e("(required)", "kubrick"); ?></small></label></p>
<p><input type="text" name="stalone" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" />
<label for="url"><small><?php _e('Website', 'kubrick'); ?></small></label></p>

Вот и всё теперь ваш блог под надёжной защитой от спама.

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

Если вам понравилась данная статья вы можете — подписаться на обновления. Впереди ещё много интересного, желаю вам всего наилучшего до новых встреч дорогие друзья!

С уважением, автор блога!
© progress-project
★Обновлено:2016-05-18

Введите свой e-mail:

Вы можете поделиться статьёй в социальных сетях:

Ваш комментарий

Внимание! Перед тем, как вставить в комментарий: html, php либо JavaScript, преобразуйте его в HTML сущность!

» Подписаться на комментарии по RSS
Поиск по блогу

Введите свой e-mail:

ВКонтакте Google+ Facebook RSS-лента сайта abrek-ad-abra.ru

Топ комментаторов

Виктор(6)
seoonly(4)
Николай(3)
Олег(3)
Иван(3)

© 2015-2017

SEO-Бизнес блог «Progress-project».

Все материалы, опубликованные на сайте: принадлежат автору и охраняются в соответствии с законодательством РФ.

При использовании материалов сайта гиперссылка на обязательна!



seo-блог