Сышышь ты, выходи сюда,
поговорим !

Обман спам-скриптов и избавление от спама в комментариях.

Опубликовано: 06.09.2018

видео Обман спам-скриптов и избавление от спама в комментариях.

Спам в интернете. Как защититься от спама?

Сегодня меня окончательно достал автоматический спам в комментариях: Akismet пропустил десяток спамных комментариев от всяческих "Гинекологов" с сообщениями типа "Очень было интересно читать, спасибо!" и "Даже моей маме понравилось :))". Плюс несколько десятков спамных комментариев он поймал, но ежедневно просматривать попавшие в спам комментарии на предмет попадания туда по ошибке нормального комментария меня утомило. Варианты с премодерацией и обязательной регистрацией в блоге я не рассматриваю - премодерация не отменит необходимости просмотра спама, а обязательная регистрация в блоге автоматом снизит активность комментирующих раз в 10 минимум. Установка капчи меня также не устраивает: во-первых, она тоже снижает активность читателей блога, ну и во-вторых, что будет с вашим комментарием, если вы ошиблись в вводе капчи? Правильно, текст уже написанного комментария исчезнет. Такой фигней страдают практически все анти-спам плагины. У того же неправильно введенная капча приводит к потере комментария, если вы не удосужились перед отправкой его скопировать.



Я пересмотрел сегодня пару десятков анти-спам плагинов - "человеческих" среди них нет. Такие плагины по большей части вредят именно нормальным посетителям блога, но никак не спамерам, которым потеря комментария в одном из десятков тысяч блогов никак не страшна. Единственную "человеческую" капчу я увидел в блоге : никакого гиммора с вводом символов, кликнул на нужной картинке и готово. И уж точно никаких ошибок при вводе. К сожалению, там капча самописная и не под WordPress . Впрочем, будь такая капча доступной всем спамеры ее  моментально бы научились пробивать. Но неважно. Поговорим лучше о том, каким образом остановить потоки спама в комментариях.


Спам вконтакте - не нужно так делать!

Первое: весь классический спам с 2-мя или больше ссылками в сообщении, а также весь зарубежный спам ловится тем же Akismet 'ом на ура и о нем беспокоиться не стоит.

Второе: грамотный ручной СМО -спам отловить можно только зайдя на сайт комментирующего и не иначе. Многие блогеры оставляют такие спамные комментарии у себя в блоге, если сообщение действительно оставлено по теме и состоит не из 2-х слов. Ловить автоматом такие комментарии невозможно в принципе.

Третье: автоматический СМО -спам, получивший просто невероятный размах в последнее время. Характеризуется нейтральными комментариями, которые можно разместить почти в любом блоге. Ловится Akismet 'ом, но только в конечной стадии распространения. То есть когда такой комментарий уже пометят как спам несколько сотен блогеров.

Как видно, наибольшие проблемы доставляет автоматический СМО -спам и именно с ним мы будем бороться. Чем он характеризуется кроме как нейтральными текстами комментариев? Тем, что он заточен под блоги на WordPress . Именно WordPress предоставляет возможность оставить ссылку на сайт комментирующего плюс это самый популярный блог-движок среди автономных блогов. Заполнить скриптом форму комментирования в блоге под управлением WordPress легче простого - названия ее полей не нужно даже распознавать, они заранее известны и любой школьник может за полчаса накатать автоматическую постилку в комментарии. Так что самый простой способ отсечь спам-скрипты это обмануть их, подсунув левое поле для заполнения, а в действительности, использовав другое поле, не со стандартным именем.

Идею подглядел , правда решил изменить используемое поле с email на comment . Дело в том, что использование одинаковых имен полей в блогах на WordPress имеет и свои плюсы: если вы где-то заполнили свое имя и имейл, то в другом блоге вам не надо полностью вводить их, достаточно лишь кликнуть на нужном поле и браузер покажет вам подсказку. Поле с комментарием такой возможностью естественно не обладает и именно поэтому его и стоит использовать для обмана спам-скриптов.

Сначала открываем файл comments.php вашего шаблона и ищем там что-то похожее на:

< textarea name = "comment" id = "comment" cols = "61" rows = "13" class = "textarea" >< / textarea >

<textarea name="comment" id="comment" cols="61" rows="13" class="textarea"></textarea>

Меняем эту строчку на:

< div class = "smo" >< textarea name = "comment" id = "comment" cols = "61" rows = "13" class = "textarea" >< / textarea >< / div > < textarea name = "real-comment" id = "real-comment" cols = "61" rows = "13" class = "textarea" >< / textarea >

<div class="smo"><textarea name="comment" id="comment" cols="61" rows="13" class="textarea"></textarea></div> <textarea name="real-comment" id="real-comment" cols="61" rows="13" class="textarea"></textarea>

Теперь открываем файл style.css вашего шаблона и добавляем туда строчку:

.smo { position : absolute ; left : -1000px ; }

.smo {position: absolute; left: -1000px;}

Что мы сделали? Поле по умолчанию для текста комментария мы сделали невидимым (сдвинув его на 1000 пикселей вне экрана) и добавили новое точно такое же поле, но с именем real-comment . Почему бы просто не сделать поле hidden ? Потому, что hidden очень легко можно распознать, а вот до анализа css -стилей спам-скрипты пока что не доросли. Конечно, спам-скриптам не составит труда заполнить оба поля, поэтому необходимо еще исправить и файл движка wp-comments-post.php - найдите там строки:

35 36 37 38 $comment_author = trim ( strip_tags ( $_POST [ 'author' ] ) ) ; $comment_author_email = trim ( $_POST [ 'email' ] ) ; $comment_author_url = trim ( $_POST [ 'url' ] ) ; $comment_content = trim ( $_POST [ 'comment' ] ) ;

$comment_author = trim(strip_tags($_POST['author'])); $comment_author_email = trim($_POST['email']); $comment_author_url = trim($_POST['url']); $comment_content = trim($_POST['comment']);

И замените их на:

35 36 37 38 39 40 $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 [ 'real-comment' ] ) ;

$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['real-comment']);

Собственно, больше ничего делать и не надо. Теперь, если спам-скрипт заполнит текстовое поле comment комментарий не будет добавлен. Для большей безопасности вам стоит поменять имя css -класса smo и имя настоящего текстового поля для текста комментария real-comment . Если вы используете какие-нибудь сторонние плагины для комментариев вроде Filosofo Comments Preview , то вам необходимо и там сменить comment на real-comment . Проверить работу хака очень легко: просто удалите из style.css строчку с .smo , обновите страницу комментариев в вашем блоге и попробуйте отправить комментарий с заполненным первым текстовым полем - если вы все сделали правильно, то вы не сможете разместить комментарий.

Забавно, но такой маленький хак уменьшает количество автоматического спама на 99% и ни малейшим образом не мешает настоящим комментаторам оставлять свои сообщения. Надеюсь, этот хак вам поможет в борьбе со спамом. Если есть какие-нибудь вопросы - оставляйте комментарии, буду рад ответить :)

PS. Прошел почти год после установки хака - ни единого автоматического спам-комментария не прошло. Конечно, это не помешало особо умным товарищам вручную нафлудить пару сотен спамных комментариев. Но что такое несколько сотен мусорных комментариев за год работы блога? Абсолютно ничего. Если бы не хак весь блог был бы завален тысячами и тысячами спамными комментариями, так что пользуйтесь и радуйтесь отсутствию спама.

Узнай, где рас-зать о бизнесе - визитки . Логотипы и фирменный стиль.

www.artikul.ru

rss