Устройте спамерам геноцид|Защита от автоматического спама
Логика спамеров, которые поднимают ТИЦ на своих жалких проектиках понятна — Яндекс так и не поднял на своем серпе понимание микроформата rel="nofollow" и понимает только невалидный <noindex>. Поэтому количество «спасибок» и «плюсадинов» по блогосфере действительно впечатляет. Дошло до того, что селебретиз, которые плевали на линкбайтинг, блогроллы и прочие прелести «настоящей» блогосферы, просто-напросто убрали поле url со своих блогов.
Ну а простые блоггеры принимают всяческие меры защиты от спамеров. Проблема в том, что все они разной степени фашизма. Уже по отношению к обычным пользователям.
Капча? Если переборщить с длинной или искажениями, то, не то что парсер не возьмет, человеку станет лень вчитываться в эти загогулины.
Акисмет? Spam-karma? Подобные «обучающиеся» защитные механизмы режут и нормальные комменты, а также пропускают спамеров, которых еще не успели засунуть «под кат». Кроме того, алгоритмы не идеальны — вот меня кто-то слил в спам, хотя я ни разу не пользовался скриптом и писал только обстоятельные комментарии и только на интересующие меня темы.
Есть еще вариант предварительной модерации, который, кроме того, что нудный для самого автора, создает слишком большую задержку по времени.
В общем, мысль ясна, да — любое средство защиты является обоюдоострым решением. Важность вопроса в том, что защищаться от спама должен сам автор, не возлагая подобные функции на обычных комментаторов и по минимуму сковывая их свободу. Алгоритмы спамилок и распознователей капч, конечно, будут развиваться так же, как развиваются продажные ссылки в войне с поисковыми системами. Но если мера защиты как-то начинает ущемлять нормальных людей — будь это даже жесткое условие включенного javascript, то вы теряете ту часть посетителей, что заботятся о своей безопасности с включенным NoScript, скажем.
Но, если не зацикливаться на спамерах вообще и на вопросе, насколько необходимы урлы авторов и комментарии вообще (а и то, и то — очень нужная штука, в этом Спомони прав), давайте лучше об автоматических лентяях поговорим.
Большая часть спама — автоматика с помощью скрипта, подобного описанному на sociall.
Лучшее на сегодняшний момент решение этого вопроса уже, в принципе, описано на wordpressplugin. Конечно, используя его на своем блоге, не забывайте использовать другие id и name реальной формы, и другие способы сокрытия «спамерской» формы — абсолютное позиционирование вправо или вверх, установка ширины, высоты и рамки в ноль, или использование hidden уже в CSS. Хотя, если по-честному, более или менее умная спамилка может легко обойти и все эти варианты, но ведь любую защиту можно обойти, да?
Самое главное, что при таком раскладе, названия у остальных полей остаются теми же, и браузеры позволяют выполнять автоподстановку, что очень и очень гуд. Честно говоря, с точки зрения обычного пользователя, подобная страховка — просто защита от дурака, которая никак не отразится на удобстве комментирования.
Есть и дополнительные меры, которые возможно предпринять. Т.к. скрипт wp-comments-post.php и не используется никакими другими файлами (что естественно) можно легко изменить его название — например, на postcomments.php и, соответственно подправить форму:
<form action="<?php echo get_option('siteurl'); ?>/postcomments.php" method="post" id="commentform">
Однако, при обновлении Вордпресс файл все-таки может появиться (а если он не переименован — затереть все ваши потуги), поэтому на этот случай мы запретим доступ к нему в .htaccess, который должен лежать в корневом файле:
<Files wp-comments-post.php>
order allow,deny
deny from all
</Files>
Таким образом, если спамилка не проверяет все поля формы и просто нацелена на стандартный wp-comments-post.php, ей дадут от ворот поворот.
99% спаммеров — полные идиоты, на которых срабатывают даже простые уловки, и такая форма защиты будет работать. Так что понемногу защищайтесь и готовьтесь к следующему раунду битвы против малолеток, возомнивших себя сеошниками.
К сожалению, мыслей по поводу, как сделать плагин, который бы автоматизировал подобные действия, нет — в соответствующих файлах попросту нет никаких зацепок. Но работы на пять минут — не пишите дурацкие посты про то, что вас спамят, а защищайтесь.
Не могу не пройтись немного по «типичной форме» в упомянутом выше посте на sociall.
- Типичный пример должен был состоять только из самой формы и элементов, без оформления.
- Путь в action, желательно, должен быть абсолютным, а не относительным, чтобы нормально работать с любым ЧПУ.
- Нет части, посвященной авторскому комментированию с проверкой на
$user_ID. - Кнопка сабмита — картинкой, ага, очень типично.
idиnameв элементах формы совпадают — это хорошо. Если дополнительно использовать начальные значения полей типаvalue="<?php echo $comment_author_email; ?>", то браузер будет помнить последний набранный текст, если что-то пошло не так и пришлось вернуться назад. Так вы сэкономите нервы читателей.- Элементы
labelне требуютidи используются с атрибутомfor="имя_инпута_в_name", чтобы по щелчку на лейбле курсор перемещался в инпут. - Используя в формах комментирования атрибута
tabindex, не забывайте, что такой же стоит прописать и у кнопки сабмита — иначе по табу с поля комментария, курсор уйдет не на кнопку, а вверх страницы.
Да, мне платят за нудность и вредность.




Можно использовать жОсткий социальный метод: купить на распродаже трастовый домен с пр2-3 и тицем, сделать там общетематический сплог и ПАРСИТЬ всё, что находится по ссылкам Г-комментов. Спамят то обычно ссылками на новые сайты, пусть ощутят на себе фильтры, подумают потом =)
А еще лучше, как в «Джей и Молчаливый Боб...» — прийти ко всем спаммерам домой и дать им люлей :). Но метод вообще хорош :)
Как я понимаю ситуацию, всесильный и всевидящий Яндекс может спокойно отлавливать таких спаммеров — по скорости постинга, по одинаковости текстов комментариев, да мало еще по чему — в конце концов, дискредитируют эту практику так же, как это произошло в свое время с прогонами по каталогам (хотя они вроде бы еще живы, нет?).
А вообще, было бы клеви, если бы заделали вместо nofollow микроформат типа commentator или что-то вроде — и чтобы поисковики сами на такие ссылки плевали :)
// целиком заново
Да, борьба со спамом — это жесть. Никак не забуду, как Bad Behavior забанил меня на моём собственном блоге.
Кстати, для тех, кто любит пользоваться автообновлением вордпресса или просто не хочет подставлять каждый раз вручную новый postcomments.php — лучше его не копировать / переименовывать, а создать в виде
<?php include ('wp-comments-post.php'); ?>
// только вместе с запретом в .htaccess
кстати да, отличное дополнение =). только include_once — на всякий, знаешь, случай или даже require_once, чтобы защититься от ошибки.
Сейчас спам, во-первых, часто осуществляют ручной и немного осмысленный — вроде около 20 центов за опубликованный и проживший неделю камент получают школьнеги.
Да и автоматический можно реализовать умно, чтобы Яндекс не смог фильтры наложить — просто надо, чтобы спамер на уровне лингвистики был не дурак.
Ахтунг: и к способу в статье и к моей поправке:
плагин OpenID напрямую вызывает wp-comments-post.php, так что ему нужно хирургическое вмешательство (вроде только в файл comments.php в версии 3.0)
@Арсений: можно, конечно. Вот этим способом мы отрезали автоматический спам, ручной же, кроме как Акисмету и подобным, по-другому не удержать. Хотя у них есть недостатки — анализируется только количество раз скидывания в фильтр по URL'у и все, но дополнительно с фильтром на слова это зарубит и 90% спама ручного. Можно сделать так, чтобы зарубить все коммы с не блогом в урле, но это, честно говоря, хреновое решение. Ведь главнее все-таки диалог, а если уж прорвался кто-нибудь 20-центовый, то можно и просто URL убрать.
Ну вот классный и смешной пример —
www.ocy.ru/2008/09/15/spam-dialogi/
@Chris Archer: сам не пользуюсь плагином OpenID, сейчас заценил — там еще в папке Test есть парсер формы с упоминанием файла. Плюс, видимо, если изменяем название textarea для дополнительной защиты, тоже придется менять. Но я не вижу сильно смысла в OpenID на блоге с открытым комментированием — разве что как мера защиты от «подмены личности».
Есть один плюс, который мне приглянулся — предмодерация + пропускать предомодероацию для представивших OpenID. Это стандартная функция плагина.
Вроде димок описывал возможные связки против спама
Мараппер, сделай красивое оформление кода в записи, а то растягивается всё ужасно, хоть тот же wp-syntax задействуй, думаю будет красивше и удобнее.
Я думаю над тем, как код сделать, да и с комментариями сейчас будет работа. Вообще, пока просто все переверстываю, так что посмотрим.
Ссылку найдешь, не помню, читал или нет? Вряд ли что-то новое, ну а вдруг.
Класс, сделал по твоему методу — автоматический спам исчез! Ещё отключил трекбеки, а то задолбали уже.
Вот это да! Такое простое и изячное решение. А я все с мат.капчей упражняюсь. Хоть и спасает от автомата, но все же лишний плагин. Да и срабатывает со второго пинка.
@Василий Сухов: не пропусти параноидальное продолжение iskariot.ru/process/vs-auto-spam-paranoidal/
Ой неее... Это уже и правда паранойей отсвечивает прилично :)
@Жилинский: Извиняюсь, но немного не понял. Купил на рспродаже трастовый домен и что? Парсить ссылки спам коментов... Можете объяснить в 2-ух словах?
» ей дадут от ворот поворот
Прочитал „ей дадут от в рот“, задумался, перечитал — со второго раза уловил :)
Спасибо, полезные советы.
Вроде димок описывал возможные связки против спама
Меня уже много времени спасает классический honeypot (с подменой полей который). Уже второй год пошел — ни единого спама.
—
Ура! Наконец нашла эту ссылку. Я этот метод применила на своём блоге полтора года назад, и счастлива. А теперь друг попросил совета по борьбе со спамом, а я не могла вспомнить, как оно делается и в каких файлах.
=)
Ага. И ещё нашла там рецепт против спам-регистрации. Буду пробовать. А то куча «молчальников», которые непонятно зачем регились. Я ещё понимаю, для чего пишут спам в комментах, но спам в регистрациях выше моего понимания.
Один из способов отсечь спамботов — вырезать поле URL из файла шаблона comments.php (применительно в wordpress темам) ведь именно это поле ищут боты. а различные капчи со временем будут ими обойдены, ибо если один человек что-то сделал, другой завсегда поломать сможет.
@shadow, не согласен. тогда всё будет валить в тело комментария. ведь изначально спам только так и делался. а подстройка под поле URL — не что иное как модификация, костыль для нестандартных случаев.
если уже совсем отсекать — то отправлять на премодерацию (отклонять?) каждый комментарий который содержит в себе URL. не это ли чистое решение?
Definitely, what a magnificent site and illuminating posts, I surely will bookmark your website.Have an awsome day!