Продолжая тему защиты блога от спама, я, как и обещал, останавливаюсь на втором пункте, а именно, изменение имени полей комментирования как способ эффективной защиты от спама без использования плагинов.
Как оказалось, этот способ не такой сложный, но вполне действенный. Программы-спамеры работают по определенному принципу автоматического заполнения полей комментирования и добавления комментария. Для того, чтобы заполнить поле им сначала надо его найти и ищут его как раз по имени. Данный способ заключается в том, что мы изменяем эти имена на совсем левые. Тогда спам-бот не сможет их найти и не сможет добавить комментарий.
В чем преимущества этого способа?
- Не вынуждает честных комментаторов производить какие-либо дополнительные действия.
- Не нужно устанавливать какие-либо дополнительные плагины.
- Как следствие пункта 2, не создается дополнительная нагрузка на сервер.
- Подходит для любых версий WordPress.
Конечно, у каждого способа есть свои минусы и этот не исключение:
- От ручного спама это вас не спасет. В принципе, от ручного спама защиты и нет. Поэтому советую не отключать Akismet.
- При обновлении ядра блога придется снова редактивать
wp-comments-post.php
Но всё же считаю, что у этого метода плюсы намного перевешивают минусы. 😉 Поэтому перейдем к реализации этого метода. Итак, начнем.
1. Для начала находим файл из вашей темы comments.php
, который находится в папке /wp-content/themes/ВАША_ТЕМА/
и открываем его через текстовый редактор.
2. Для простоты достаточно изменить одно поле: email или author. Но так как мы добиваемся максимальной защиты от спама, то будем изменять все возможные поля. Находим следующие поля:
<input type="text" name="author" value="<?php echo $comment_author; ?>" tabindex="1" /> <input type="text" name="email" value="<?php echo $comment_author_email; ?>" tabindex="2" /> <input type="text" name="url" value="<?php echo $comment_author_url; ?>" tabindex="3" /> <textarea name="comment" tabindex="4"></textarea>
Они у вас не обязательно будут прям в точь-точь такими же, но атрибуты name
ОБЯЗАТЕЛЬНО такие! Далее заменяем в них значения параметра name
на любые другие, например, на x1x
, x2x
, x3x
, x4x
соответственно. Получим следующее:
<input type="text" name="x1x" value="<?php echo $comment_author; ?>" tabindex="1" /> <input type="text" name="x2x" value="<?php echo $comment_author_email; ?>" tabindex="2" /> <input type="text" name="x3x" value="<?php echo $comment_author_url; ?>" tabindex="3" /> <textarea name="x4x" tabindex="4"></textarea>
Затем сохраняем этот файл и закрываем его.
3. Теперь находим файл wp-comments-post.php
, который находится в корневой папке блога и также открываем его с помощью текстового редактора.
4. Находим следующие строки:
$comment_author = ( isset($_POST['author']) ) ? trim(strip_tags($_POST['author'])) : null; $comment_author_email = ( isset($_POST['email']) ) ? trim($_POST['email']) : null; $comment_author_url = ( isset($_POST['url']) ) ? trim($_POST['url']) : null; $comment_content = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;
И заменяем во всех строках после равно значения в квадратных скобках на новые параметры name
, то есть на x1x
, x2x
, x3x
, x4x
соответственно. То есть у вас получится:
$comment_author = ( isset($_POST['x1x']) ) ? trim(strip_tags($_POST['x1x'])) : null; $comment_author_email = ( isset($_POST['x2x']) ) ? trim($_POST['x2x']) : null; $comment_author_url = ( isset($_POST['x3x']) ) ? trim($_POST['x3x']) : null; $comment_content = ( isset($_POST['x4x']) ) ? trim($_POST['x4x']) : null;
Сохраняем файл и закрываем его.
На этом наши действия закачиваются. Защита от спама готова! Но хочу Вам сказать, что такие новые имена полей были взяты только для примера. Используйте свои уникальные имена полей!
Я решил воспользоваться именно этим методом защиты от спама и вчера проделал все эти действия на своём блоге. Можете убедиться, что комментарии работают на ура. 😉
Если у вас остались вопросы, задавайте их. Постараюсь на них ответить.
Предлагаю дополнительно изучить эффективное продвижение сайта, рассматриваемое на практике.
А также компания SEO City предлагает продвижение статьями на качественных отборных площадках.
И вообще советую покупать и использовать ноутбуки Москва для работы, так как они удобны и мобильны, вы не будете привязаны к месту.
10 комментариев
Можно ещё добавить
<input type=»hidden» name=»comm_validation» value=»true» tabindex=»3″ />
и в wp-comments-post.php в начале файла добавить:
вот так вот
Rulexec, я не вижу смысла в этом. Так как при отправке запроса, даже спам-ботом, поле comm_validation будет иметь значение true.
Все гениальное просто Теперь можно от капчей избавляться.
Twin, насколько я знаю, спам-боты просто отправляют POST запрос на нужный скрипт, а не парсят страницу и получают поля.
Я хоть и не сторонник плагинов, но предпочитаю использовать Math Comment. Роботы его не могут победить как ни крути, и людям не сложно посчитать. И мозг развивает =) Шутка!
А еще при вашем способе надо заново вводить имя, почту и адрес, запомненные браузером не канают =( Но это только первый раз.
Смеялсо.
Сам поймешь, как убог твой совет, когда сделаешь ручками GET / HTTP 1.1
Не стоит забывать и про ручной спам. Что сейчас только не сделают за 10 центов. Лучшая защита от спама — это убрать поле «Сайт» в форме.
@ Безумный программист, я об этом и писал в посте, там где минусы описывал. Данный способ спасает очень хорошо от автоматического спама.
Редактировать файл движка — дело неблагодарное, это минус огромный! WordPress обновляется очень часто.
@ kama, согласен, но в данном случае другим способом изменения невозможно внести, наверное.