Блог Андрея Юрченко

Авторский блог с полезными статьями по темам: создание сайта, заработок на сайте, заработок в интернете, работа на дому, работа в интернете, инфобизнес

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

Всем привет! Сегодня хочу поговорить о том, как можно защитить свой блог на WordPress от спама. Какими методами пользуетесь вы? Может используете плагины, капчи или что-то еще?

защита от спама

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

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

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

Как правило, все роботы парсят страницы сайтов на наличие формы <form>…</form> и наличие внутри нее инпутов <input … />. В свою очередь каждый инпут имеет свое уникальное имя, которое уникально для движка. Вот по этому имени скриптом выполняются определенные действия и происходит занесение данных формы в базу. На движке WordPress сделано много сайтов и он работает на определенных алгоритмах и использует определенные имена для инпутов в формах. Отсюда нетрудно догадаться, как можно сделать для спам программ шаблон, по которому методом POST прямым запросом будет отправляться нужная информация для определенных полей формы.

Давайте посмотрим на стандартную форму комментариев в WordPress, которая в зависимости от шаблона может немного отличаться и имеет вид:

<form action=»<?php echo get_option(‘siteurl’); ?>/wp-comments-post.php» method=»post» id=»commentform»>

<?php if ( $user_ID ) : ?>

<p>Вы вошли как <a href=»<?php echo get_option(‘siteurl’); ?>/wp-admin/profile.php»><?php echo $user_identity; ?></a>. <a href=»<?php echo wp_logout_url(get_permalink()); ?>» title=»Выйти из аккаунта»>Выйти &raquo;</a></p>

<?php else : ?>

<label for=»author»><small>Имя или псевдоним <?php if ($req) echo «(обязательно)»; ?></small></label>

<input type=»text» name=»author» id=»author» value=»<?php echo $comment_author; ?>» tabindex=»1″ <?php if ($req) echo «aria-required=’true’»; ?> />

<label for=»email»><small>E-mail (не публикуется) <?php if ($req) echo «(обязательно)»; ?></small></label>

<input type=»text» name=»email» id=»email» value=»<?php echo $comment_author_email; ?>» tabindex=»2″ <?php if ($req) echo «aria-required=’true’»; ?> />

<label for=»url»><small>URL персонального блога</small></label>

<input type=»text» name=»url» id=»url» value=»<?php echo $comment_author_url; ?>» tabindex=»3″ />

<?php endif; ?>

<textarea name=»comment» id=»comment» tabindex=»4″></textarea>

<input name=»submit» type=»submit» id=»submit» tabindex=»5″ value=»Отправить комментарий!» /><?php comment_id_fields(); ?>

<?php do_action(‘comment_form’, $post->ID); ?>

</form>

Посмотрите на три инпута с именами: : name=»author», name=»email», name=»url». Во всех WordPress эти имена одинаковы и спамботы находят в форме именно эти имена и спокойно отправляют свой мусор.

Несложно догадаться что нужно сделать, чтобы защитить свои комментарии от спама. Правильно – нужно просто изменить эти имена. Так что делаем примерно следующее:

<label for=»author»><small>Имя или псевдоним <?php if ($req) echo «(обязательно)»; ?></small></label>

<input type=»text» name=»bname» id=»author» value=»<?php echo $comment_author; ?>» tabindex=»1″ <?php if ($req) echo «aria-required=’true’»; ?> />

<label for=»email»><small>E-mail (не публикуется) <?php if ($req) echo «(обязательно)»; ?></small></label>

<input type=»text» name=»bmail» id=»email» value=»<?php echo $comment_author_email; ?>» tabindex=»2″ <?php if ($req) echo «aria-required=’true’»; ?> />

<label for=»url»><small>URL персонального блога</small></label>

<input type=»text» name=»bsite» id=»url» value=»<?php echo $comment_author_url; ?>» tabindex=»3″ />

Мы изменили поля поля name=»…», но это еще не все. Теперь движок не понимает, что это за поля и не может собрать с них информацию, а как и прежде ищет отправленные из стандартных полей данные. Нужно изменить эту ситуацию и помочь движку найти нужные поля.

Для этого зайдите к себе на сервер и в корне сайта найдите файл wp-comments-post.php и в его коде найдите следующие строки:

$comment_author       = ( isset($_POST['author']) )  ? trim(strip_tags($_POST['author'])) : null;

$comment_author_email = ( isset($_POST['email']) )   ? trim($_POST['email']) : null;

$comment_author_url   = ( isset($_POST['url']) )     ? trim($_POST['url']) : null;

$comment_content      = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;

В этом коде нужно сделать некоторые изменения, а именно делаем так:

$comment_author       = ( isset($_POST['bname']) )  ? trim(strip_tags($_POST['bname'])) : null;

$comment_author_email = ( isset($_POST['bmail']) )   ? trim($_POST['bmail']) : null;

$comment_author_url   = ( isset($_POST['bsite']) )     ? trim($_POST['bsite']) : null;

$comment_content      = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;

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

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

Вот посмотрите: «Полезные хаки для комментариев WordPress«думаю многое из того что описано в статье возьмете себе на вооружение.

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

Отличная и крайне полезная информация, которой обязательно нужно поделиться со своими друзьями, да и работает все как часы – спам отсутствует!

С уважением, Андрей Юрченко

Поделитесь статьей в социальных сетях!

Подпишись на RSS-рассылку и получай новые статьи на почту!

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

МАГИЧЕСКИЙ ШАБЛОН ПОДПИСНОЙ СТРАНИЦЫ В ПОДАРОК, ЗАБИРАЙТЕ

Оставить комментарий:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Комментарии Вконтакте:

Content Tab Three

Блог Андрея Юрченко © 2016

ВВЕРХ