Защита от спама оригинальным способом

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

  1. Возможность сделать комментарии доступными только зарегистрированным пользователям, но кто сейчас любит регистрироваться? Такой  способ может привести к потере желания комментировать ваши записи  некоторыми пользователями .
  2. Установить плагин с капчей — тоже иногда бывает не очень приятно разглядывать и угадывать разные буковки и картинки. Да и боты уже научились обходить многие виды капчи.
  3. Подключить плагин Akismet, но во-первых лишняя нагрузка на сайт, во-вторых надо регистрироваться, получать API-ключ и прочая нудная ерунда.

Защита от спама оригинальным способом заключается в направлении ботов по ложному пути!
Как работает спам-робот? Он находит форму на вашем сайте,  вставляет в нее спам,  который публикуется в блоге, либо требует подтверждения его публикации.
Как обмануть робота?  Принцип такой. Нужно добавить  форму-обманку специально для спам-робота. Если будет две формы, то он не задумываясь выберет первую, так как действует по вбитой в него программе — пришел ->нашел форму -> заспамил и ушел с чувством выполненного долга.
Поэтому мы создаем дополнительную форму и делаем ее нерабочей (данные никуда не отправляются) и невидимой для нормальных посетителей. Посетители же будут видеть  вторую, рабочую форму, и спокойно добавлять в нее комментарии.
Итак, устанавливаем оригинальную защиту от спама.

1. Правим файл comments.php

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

<textarea name=»comment» id=»comment» cols=»0″ rows=»0″ tabindex=»4″ class=»textarea1″></textarea>

Далее эту строку  копируете и вставляете ниже, чтобы получилось две одинаковых строки:

<textarea name=»comment» id=»comment» cols=»70″ rows=»10″ tabindex=»4″ class=»textarea1″></textarea>
<textarea name=»comment» id=»comment» cols=»70″ rows=»10″ tabindex=»4″ class=»textarea1″></textarea>

Затем во второй строке меняете слово «comment»  на   «mystring». Вместо «mystring» можно любое слово.

<textarea name=»comment» id=»comment» cols=»0″ rows=»0″ tabindex=»4″ class=»textarea1″></textarea>
<textarea name=»mystring» id=»mystring» cols=»70″ rows=»10″ tabindex=»4″ class=»textarea1″></textarea>

У нас первое текстовое поле  будет для спам-роботов,  а второе — рабочее и видимое для пользователей.

2. Вносим дополнение в файл  style.css

Находим в папке вашей темы файл style.css и в самом низу дописываем:

#comment {display:none;}

Этим мы сделали невидимым для посетителей первое текстовое поле — обманку.

3. Добавляем код в файл functions.php

Открываем файл 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[‘mystring’]);
$_POST[‘comment’] = $comment_content;
return $commentdata;
}

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


Рубрики: Полезное на сайт Тэги: |
Понравилась статья? Поделись!
        

Всего комментариев: 0

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

Ваш email не будет опубликован.