Борьба со спамом на сайте

Боты стали наглыми, за 4 дня накидали почти 17 тыс комментариев, хотя установлены плагины для борьбы со спамом.

Тут же заметил, нагрузка на некоторых серверах выросла почти в 2 раза, в mysql уже огромная база ip + email и другой хлам от плагинов «антиспам». Посмотрев на этот бред, решил избавиться от плагинов и убавить пыл ботов.

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

WordPress используется на десятке проектов с которыми приходится работать и проверить все эти комментарии не реально. Решил попробовать очень простой способ. Ботов обычно пишут под готовые формы WordPress’a и замена у textarea id на другой, возможно решит все проблемы. Попробовав на паре проектов, поток левых комментариев сразу упал до нуля, обычные стали проходить без проблем.

В файле functions.php делаем простейшую замену:

wp_enqueue_script('sv-common-files', get_template_directory_uri() .'/js/common.js', array('jquery'));
add_filter('init', 'filter_post');

function filter_post($data) {
  if (isset($_POST['comment'])) {
    $_POST['comment'] = '';
  }
  if (isset($_POST['comment_rep'])) {
    $_POST['comment'] = $_POST['comment_rep'];
  }
  return $data;
}

В файлах темы создадим js/common.js, а в нём очень простой код:

$(function() {
  $('#comment').attr('id', 'comment_rep');
});

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

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

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