Борьба со спамом на сайте
Боты стали наглыми, за 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'); });
Как оказалось, боты очень тупые и такая примитивная переделка формы поставила их в тупик.
Надеюсь это простое решение поможет и вам «без лишних плагинов» избавиться от спама.
Да, еще на сайте солдатов, в форуме нагадили. Боты конечно вещ нужная но пакости от них просто прорва.