Bender против Спама
Вы ведете standalone-блог? На Wordpress? Атакуют китайские боевые роботы спамеры?
В последнее время разговоры в блогах все крутятся вокруг порядком надоевшего спама. От этой заразы не помогают ни <noindex>, ни санкции Яндекс по отношению к сплогам (их сейчас модно называть тематическими блогами, но на самом деле это те же сателлиты с переведенным/отсканированным/измененным контентом). Даже то, что ссылки с блогов стали играть меньшую роль в ранжировании, не останавливает тех школьников, пытающихся «заработать» на разнообразных Блогунах, ДжейТуДжеях и ПрофитБлогах (ну или «нерезидентов» с Сапы, да). И убирать поле URL — не хочется, все-таки это одновременно и мотивация комментаторов, и возможность обратной связи с ними.
Если говорить о ручном спаме, от которого не спасут никакие меры предосторожности (а вы представьте себе, кто-то умудряется на нем зарабатывать и не 0.01 цент), то до какого-то времени было два основных способа защиты. Премодерация, которая заставляет постоянно проверять стек на проверку (пока диалоги в блоге замирали), и Акисмет, порой отправляющий в спам и нормальных комментаторов (иногда — надолго). Теперь нам предложили альтернативу Parasite Eliminator, которая тоже имеет недостатки, но позволяет справиться с засильем вручную написанных «спасибо» и «отлично» со ссылками на ужасные сайты и ужасные же сплоги.
От автоматического спама защищаются в основном капчей (Акисмет тоже нацелен на это — но опять же, разбирать завалы «спасибок» — нерадостная перспектива). Это плохое решение для небольшого блога — и не потому, что даже не очень простую капчу можно взломать, и ее действительно взламывают, когда она становится популярной. В первую очередь, капча заставляет посетителя, который хочет просто оставить комментарий, вглядываться в картинку или складывать цифры, а потом еще делать лишнее телодвижение, переписывая их в поле ввода. Т.е., пользуясь терминологией Смирнова, это фашизм. Ммм, все помнят кошечек и собачек на Рапиде?
В общем, мы тут подумали и решили, что с автоматическим спамом можно бороться и без фашизма к пользователям. Правда, придется немного поработать ручками, но надеемся, вас это не остановит.
Этот шаг абсолютно совместим с обновлениями Wordpress.
Для начала создаем в корневом каталоге сайта файл с названием вида send-comment.php (называем его как хотим). В нем всего одна строчка:
В .htaccess добавляем строчки, запрещающие обращаться к оригинальному скрипту отправки комментария:
После этого изменяем форму комментариев в шаблоне темы (файл comments.php), чтобы действие вело на новый скрипт:
Если же вы еще боитеськитай спама, то есть решение с подменой полей формы. Единственное — при обновлении движка, возможно, придется опять накладывать патч.
Т.к. некоторые спамилки могут выуживать скрипт и имена полей из формы, то нам надо всего лишь изменить название поля. Понятно, что поля name-email-url должны остаться стандартными, чтобы комментатору легко было заполнять их автоподстановкой браузера. Поэтому изменять будем название поля textarea в comment.php шаблона темы.
И не просто изменим, а добавим новое, которое станет «настоящим»:
Опять же, поле comment-text называем по своему усмотрению. В style.css же скрываем старое поле:
Можно скрыть его так, можно сдвинув его по position:absolute, или, как предлагает автор, заключить textarea в div и сдвигать именно его. Все зависит от вашей фантазии.
После чего, изменяем wp-comments-post.php, добавляя туда название нашего нового поля и делая проверку на старое:
После чего все эти хрумеры, пытающиеся пробиться к вашему файлу (либо если вы не выполнили шаг 1, либо если они все-таки нашли скрипт отправки комментария), будут умирать и корчиться.
Конечно, оба эти способа можно вычислить, ровно как и капчу, — названия полей легко читаются в HTML страницы. Однако, пока этот способ защиты от автоматического спама в Wordpess работает и никак не мешает вашим комментаторам общаться с вами и между собой, все нормально.
В сочетании с Parasite Eliminator — вы, наверное, и совсем забудете, что такое спам (острая консервированная ветчина?).
Теперь вы во всеоружии. Приятного ведения блога без спама!
В последнее время разговоры в блогах все крутятся вокруг порядком надоевшего спама. От этой заразы не помогают ни <noindex>, ни санкции Яндекс по отношению к сплогам (их сейчас модно называть тематическими блогами, но на самом деле это те же сателлиты с переведенным/отсканированным/измененным контентом). Даже то, что ссылки с блогов стали играть меньшую роль в ранжировании, не останавливает тех школьников, пытающихся «заработать» на разнообразных Блогунах, ДжейТуДжеях и ПрофитБлогах (ну или «нерезидентов» с Сапы, да). И убирать поле URL — не хочется, все-таки это одновременно и мотивация комментаторов, и возможность обратной связи с ними.
Если говорить о ручном спаме, от которого не спасут никакие меры предосторожности (а вы представьте себе, кто-то умудряется на нем зарабатывать и не 0.01 цент), то до какого-то времени было два основных способа защиты. Премодерация, которая заставляет постоянно проверять стек на проверку (пока диалоги в блоге замирали), и Акисмет, порой отправляющий в спам и нормальных комментаторов (иногда — надолго). Теперь нам предложили альтернативу Parasite Eliminator, которая тоже имеет недостатки, но позволяет справиться с засильем вручную написанных «спасибо» и «отлично» со ссылками на ужасные сайты и ужасные же сплоги.
От автоматического спама защищаются в основном капчей (Акисмет тоже нацелен на это — но опять же, разбирать завалы «спасибок» — нерадостная перспектива). Это плохое решение для небольшого блога — и не потому, что даже не очень простую капчу можно взломать, и ее действительно взламывают, когда она становится популярной. В первую очередь, капча заставляет посетителя, который хочет просто оставить комментарий, вглядываться в картинку или складывать цифры, а потом еще делать лишнее телодвижение, переписывая их в поле ввода. Т.е., пользуясь терминологией Смирнова, это фашизм. Ммм, все помнят кошечек и собачек на Рапиде?
В общем, мы тут подумали и решили, что с автоматическим спамом можно бороться и без фашизма к пользователям. Правда, придется немного поработать ручками, но надеемся, вас это не остановит.
Шаг 1
Этот шаг абсолютно совместим с обновлениями Wordpress.
Для начала создаем в корневом каталоге сайта файл с названием вида send-comment.php (называем его как хотим). В нем всего одна строчка:
<?php include_once('wp-comments-post.php'); ?>В .htaccess добавляем строчки, запрещающие обращаться к оригинальному скрипту отправки комментария:
<Files wp-comments-post.php>
order allow,deny
deny from all
</Files>После этого изменяем форму комментариев в шаблоне темы (файл comments.php), чтобы действие вело на новый скрипт:
<form action="http://ваш-сайт.ru/send-comment.php" method="post" id="commentform">Шаг 2
Если же вы еще боитесь
Т.к. некоторые спамилки могут выуживать скрипт и имена полей из формы, то нам надо всего лишь изменить название поля. Понятно, что поля name-email-url должны остаться стандартными, чтобы комментатору легко было заполнять их автоподстановкой браузера. Поэтому изменять будем название поля textarea в comment.php шаблона темы.
И не просто изменим, а добавим новое, которое станет «настоящим»:
<textarea name="comment" id="comment" class="commentarea" cols="40" rows="10"></textarea>
<textarea name="comment-tekst" id="comment-text" cols="40" rows="10" class="text"></textarea>Опять же, поле comment-text называем по своему усмотрению. В style.css же скрываем старое поле:
.commentarea{
width: 0;
height: 0;
border: 0;
}Можно скрыть его так, можно сдвинув его по position:absolute, или, как предлагает автор, заключить textarea в div и сдвигать именно его. Все зависит от вашей фантазии.
После чего, изменяем wp-comments-post.php, добавляя туда название нашего нового поля и делая проверку на старое:
$spam_test_field = trim($_POST['comment']);
if(!empty($spam_test_field)) wp_die('Спаму нет!');
$comment_author = trim(strip_tags($_POST['author']));
$comment_author_email = trim($_POST['email']);
$comment_author_url = trim($_POST['url']);
$comment_content = trim($_POST['comment-tekst']);После чего все эти хрумеры, пытающиеся пробиться к вашему файлу (либо если вы не выполнили шаг 1, либо если они все-таки нашли скрипт отправки комментария), будут умирать и корчиться.
Шаг 3
Конечно, оба эти способа можно вычислить, ровно как и капчу, — названия полей легко читаются в HTML страницы. Однако, пока этот способ защиты от автоматического спама в Wordpess работает и никак не мешает вашим комментаторам общаться с вами и между собой, все нормально.
В сочетании с Parasite Eliminator — вы, наверное, и совсем забудете, что такое спам (острая консервированная ветчина?).
Теперь вы во всеоружии. Приятного ведения блога без спама!



комментарии (52)