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

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

Одну из самых простых реализаций этого способоа я использовал на этом блоге и остался очень доволен результатом. За примерно 2 недели ее использования ко мне не пришло ни одного спам-комментария, в то время как без нее я стабильно получал 5-10 штук.По этому поводу я решил поделиться тем, как сделать невидимую капчу, метод настолько прост, что его осилит даже новичек в веб-технологиях.

Делаем невидимую капчу на сайт

Метод, который я предлагаю — самый простой из тех, которыми можно обнаружить бота. Его можно успешно применять, как на самописном сайте, так и на популярных движках вроде wordpress. Заключается он в подмене формы отправки комментариев. Мы создаем не по одному полю для email, имени и текста сообщения, а 2. Один набор полей служит для отправки комментариев, а второй для выявления ботов. Достаточно спрятать второй набор полей, так чтобы обычный пользователь не видел его. Тогда, если они будут заполнены, то понятно, что сообщение отправлено роботом.

Пример формы для защиты комментариев от спама

Чтобы было понятнее приведу пример реализации. В коде вывода формы добавляем дополнительные поля:

<input class=»add_comment_ffield» type=»text» name=»name» value=»» />

<input class=»add_comment_ffield» type=»text» name=»email» value=»» />

<input class=»add_comment_ffield» type=»text» name=»comment» value=»» />

В коде обработки формы комментариев (на сервере) добавляем условие. Если наши «секретные» поля заполнены, то считаем комментарий спамным и не добавляем его.

if ($_POST[‘name’]==» && $_POST[’email’]==» && $_POST[‘comment’]==»){

$data = $this->comments_model->add(‘blog’,$_POST);

}

Для большей надежности метода стоит использовать стандартные поля name, email и т.п. в форме для роботов, а поля для пользователей назвать иначе.

Скрытые поля готовы, осталось только скрыть их). Самый простой способ — использовать атрибут type=»hidden», но мы поступим иначе и используем CSS для скрытия полей. Это более сложный для понимания роботом трюк. Например можно вынести поля из видимой области, применив абсолютное позиционирование.

form input.add_comment_ffield {

position: absolute;

left: -1000px;

}

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

А как вы боретесь со спамом на своем блоге?

oroom

oroom

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

9 комментариев
Показать все Самые популярные Высокий рейтинг Низкий рейтинг Добавьте свой отзыв
  1. Напиши мне на мыло, я сам не разбираюсь, можешь мне поставить на сайт такую защиту? Делов я так понимаю на 5 минут.

  2. Если cms-ка знакомая или просто ищется код обработки комментариев — без проблем.

  3. На моем сайте много спама. Вы не могли бы объяснить мне новичку более простой способ, так как я не знаю html-азбуку.

  4. Если вы сидите на wordpress, то можно установить плагин antispam bee, тогда не нужно копаться в коде, а принцип работы у него такой же, как я описал. Если не WP, могу помочь сам.

  5. Придумано довольно просто и оригинально.Надо попробовать поставить,хотя знаний пока маловато в этом.

  6. В коде обработки формы комментариев (на сервере) добавляем условие.

    А подробнее можно описать , где этот код находится ?

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

    В других CMS это может быть отдельный модуль комментариев. Если говорит о популярном в народе Wordpres, то чтобы найти обработку комментариев нужно открыть файл темы comments.php и найти там форму комментариев (начало кода примерно такое:
    <form action="/wp-comments-post.php» method=»post» id=»commentform»>

    Соответственно тут мы добавляем скрытую форму для роботов, а в файле wp-comments-post.php добавляем обработку комментариев или заменяем в форме путь на другой файл добавления комментариев, который делаем сами, чтобы не переопределять стандартные файлы wp.

  8. Использую плагин Akismet и ручную модерацию. Пока комментариев немного, но спам удаляю ежедневно.

    Фраза «В коде обработки формы комментариев (на сервере)» таких чайников как я вводит в ступор!

  9. Если боретесь со спамом на wordpress, то вместо каптчи и akismet можно использовать плагин antispam bee. Он работает по тому же принципу, что и я расписал, только самому ничего в коде править не нужно.

    Сам я с WP дел не имею, но отзываются знакомые очень положительно.

Оставить ответ

SEO эксперты
Logo
Включить регистрацию в настройках - общий