n-wp.ru — блог о WordPress
Способ защиты от автоматического спама для стандартной формы комментирования | n-wp.ru

Способ защиты от автоматического спама для стандартной формы комментирования

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

Способ защиты от автоматического спама для стандартной формы комментирования

Подавляющее большинство спама — автоматический. То есть он создается специальными программами и скриптами, и размещается по шаблону, автоматически. Назовем все эти нехорошие скрипты и программы спам-ботами. Так вот спам-бот обычно действует по такой схеме — он сканирует страницу блога на предмет обнаружения формы комментирования, вернее не ее, а указанных в ней полей для ввода имени, электронного адреса, адреса сайта, и ввода текста, и, найдя эти поля, вводит в них свои данные. А помогает ему найтиэти поля специальные маркеры, которые используются в стандартной форме комментирования WordPress. Так вот простейшим способом оградить свой блог от спама является изменение этих маркеров.

В обычной форме комментирования всегда встречаются три поля. Пример полей input стандартной формы комментирования:

Спам-бот ищет поля input с маркерами name=»author», name=»email» и name=»url». Чтобы он их не нашел, их всего-то и нужно, что изменить на что-то свое. Пример измененных полей input стандартной формы комментирования:

Теперь спам-бот не сможет оставить автоматический спам, так как не найдет поля. Но и комментаторы не смогут оставить комментарии, так как WordPress тоже не поймет, что за данные ему вводят. Поэтому нужно изменить еще один системный файл. Откройте файл wp-comments-post.php, который находится в корневой папке, и найдите в нем такие строчки:

[code

Понимаете, к чему я веду? В этих строчках нужно изменить маркеры name на свои:

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

Однако у этого способа есть и недостатки. Главный — каждый раз при обновлении WordPress придется вручную менять файл wp-comments-post.php. Но обновление версии WordPress — не такое уж и частое событие, да и смена занимает от силы минуту. Еще один минус — не все плагины, работающие с комментариями, дружелюбно воспримут смену name в формах input, если их работа зависит от этих полей. Впрочем, такие плагины встречаются редко, да и ручная правка трех слов в системном файле занимает малое время, так что эти минусы практически незаметны.

tiaurus

Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

3 комментария

  • может проще akismet? он всё-таки для простых блогов условно-бесплатен. и от спама отлично защищает + любой спам идёт им в базу, что улучшает качество сервиса.

    • Согласен, может и проще, когда не нужно заботиться об оптимизации работы скриптов. А когда каждый лишний килобайт памяти на счету, и считаешь каждое обращение к базе данных, то поневоле начинаешь задумываться о сокращении лишних плагинов. К тому же, зачем плагин, когда можно обойтись без него, но с тем же результатом работы?

  • Можно ещё для верности tabindex поменять, но тогда, понятное дело, переключаться между полями с помощью Tab/Shift+Tab станет невозможно.

/* ]]> */