Фильтр спама для блога. Отсев 99%

Спамеры, идите на...лесомДоброго дня господа.
Как вы видите из заголовка, пост посвящен насущной проблеме спама в комментариях. Сразу оговорюсь, что наличие капчи в комментах меня лично раздражает, а кроме того высока вероятность того, что к моменту окончания написания коммента капча устаревает и как следствие коммент не публикуется, а просто исчезает. Кроме того, для моего блога актуален вопрос нагрузки, а по сему, будем учится посылать нахер как отфильторовать автоспам без плагинов.

Данную идею подбросил мне Денис в комментариях к этому посту.

А дальше пришлось пораскинуть мозгами, поискать варианты решения и вот на выходе пошаговое руководство для тех, кто устал от говнокоментарием. Итак…

Открываем comments.php шаблона и ищем там строчку:

<textarea name=»comment» id=»comment» cols=»100%» rows=»10″ class=»textarea»></textarea>

ну или что-то похожее.
Заменяем её на следующий код:

<div class=»zaebli»><textarea name=»comment» id=»comment» cols=»100%» rows=»10″ class=»textarea»></textarea></div>
<textarea name=»newcomm» id=»newcomm» cols=»100%» rows=»10″ class=»textarea»></textarea>

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

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

Что мы только что сделали? Создали новое текстовое поле для комментарием с оригинальным name=»newcomm», а старое поле заключили в див и выкинули за пределы экрана на 1000px.

Теперь пользователи ручками будут вводить комменты в новое поле, а спам боты будут цепляться как и раньше к старому полю и писать туда говнокоменты, ну а нам остается только переключить публикацию со старого поля на новое. Для этого откроем фаил wp-comments-post.php (расположен в корне сайта) и найдем строки:

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

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

$spam_field = trim($_POST[‘comment’]);
if(!empty($spam_field)) wp_die(‘Иди тoвapищ, нa xyй!’);
$comment_author = trim(strip_tags($_POST[‘author’]));
$comment_author_email = trim($_POST[’email’]);
$comment_author_url = trim($_POST[‘url’]);
$comment_content = trim($_POST[‘newcomm’]);

Для безопасности теперь необходимо поменять мои имена и классы на свои и всё. 99% спама будет отфильтровано.

А 1% приходится на «обезъянок», такой спам фильруется только вручную.

Удачного вам избавления от СПАМА.

Обсуждение: 32 комментария
  1. SmartBy:

    И как всегда все гениально просто. Спасибо за совет.

  2. Napster:

    Попробуем на сколько будет эффективен способ.
    Попробую прикрутить себе. О результатах потом отпишу.

  3. SmartBy
    Я сам удивился когда допер до этого. Всегда пожалуйста.
    Napster
    У меня в сутки до 130 говнокомент было, сейчас только нормальные. Буду ждать результатов твоей «Войны со СПАМОМ»

  4. AdultTraf:

    Неплохая идея. У меня автоспам отсекает плагин WP-SpamFree, который смотрит включены ли у юзера кукисы и java скрипты.

  5. reds:

    Оригинально. А просто галочка от димонинга почему не устраивает?

  6. AdultTraf
    Не, я принципиально хотел спам отсеивать без плагинов, хостинг у меня слабенький.
    reds
    Да галочку можно ведь, по моему, обойти, вернее бот разве не может её нажать?

  7. Vetroff:

    Все это неплохо… Но — это не война со спамом, т.к. вы в ответ ничего не делаете. А вот Parasite Eliminator позволяет засандолить сайт спамера в блеклист. И его сайт уже не пройдет много где. Да и по быстродействию нет проблем, в общем-то. Хотя, я для себя вообще закрыл коментарии, т.к. мой сайтик не предусматривает обратную связь. :) В будущем наверно надо будет конечно что-то юзать.

    P.S. За способ спасибо. :)

  8. Vetroff
    А я и не обещал войну со спамом! В итоге ведь кто как хочет, тот так и работает (или как умеет) :-)
    «Не стреляйте в пианиста…»

  9. илья:

    Я думал что Акисмет совместно с капчей творит чудеса, но после того,что прочел у Вас думаю я невсе знаю. Теперь буду пробовать. Посмотрим как на 99% убереться спам.

  10. илья
    Буду рад, если отпишешь о результатах

  11. Mauzer:

    Акисмет и так блочит весь автоматический спам, ну + капча и наверняка.
    А так сейчас по моему больше всего блогеры страдают от этих самых обезьянок… Вот от них бы найти способ :)

    Кстати, особенно напрягают спаммеры, которые нормально комментят, ты к ним привыкаешь, они продолжают комментить, но время от времени меняют урл — сложно заметить, вроде те же активные комментаторы, а спокойно себе спамят свои сайты, вот их бы как-то наказывать :)

  12. studio:

    По-моему, от спам ботов избавиться не так уж и сложно. Mauzer абсолютно прав. Истинное зло — т.н. обезьянки. Вот от них-то действительно спасу нет. Делать все вручную банально не хватает времени. Может такова судьба блоггера :)?

  13. studio
    А я и не говорил, что сложно… Просто плагин использовать не хотел и капчу… вот и всё.
    Mauzer
    Есть такой хитрый плагин, который выборочно закрывает ссылки… хочешь в тексте поста, хочешь в цитатах, хочешь в комментах — универсал короче. Но главная фишка — это возможность добавлять избранные урлы, которые закрываться не будут.

  14. vasiliy79:

    я считаю что не какие плагины не помогут и спам боты будут всегда

  15. Чеширский Кот:

    супер!Жаль увидел поздно ваш пост с этим советом,но вот до НГ все сделал,как написано (делал для блога девушки,она как раз жаловалась что очень много автоспама приходит) и результаты так же впечатляют!Как раз хотел отписаться,после того как сам всё проверю!Так что спасибо огромное и с Новым годом конечно же!:))

  16. vasiliy79
    Это не плагин… а если и появятся спам боты, нужно просто поменять имена для полей.. и всё!!!

    Чеширский Кот
    Рад что помагло!
    ;-)
    Подруге привет!
    С Новым Годом!!!

  17. роберт:

    Посмотрим!

  18. роберт:

    Да ссылочка не остается.

  19. Катерина:

    Да, везёт же некоторым, вот бы мне когда нибудь столько посетителей… А я если такую штуку проверну у себя, то буду сидеть одна, сама с собой — ни ответа, ни привета! Как-то скучно мне будет. Но вот когда и я подрасту немножко и меня тоже замучают подлые спамеры — тогда обязательно попробую ваш приёмчик. Так что всё равно спасибо!

  20. Катерина
    Пользуйтесь на здоровье

  21. Хорошее решение, жаль что нужно редактировать файлы движка, при обновлении неудобно…

  22. Антон
    wp-comments-post.php — вроде не меняется ;-)

  23. 9SEO:

    (оффтоп)Постоянно захожу в твой блог, вижу сверху эту прикрепленную тему и ухожу, так как думаю, что ты ничего не писал)) Только когда в ридер зашел, понял, что пост прикреплен просто))

  24. 9SEO
    Ты меня улыбнул… Я как то об этом не задумывался

  25. Диана:

    Мы выдумывает всевозможные скрипты, а спамеры на это что нибудь свое, вечная война

  26. Евгений:

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

  27. Евгений
    Если бы Вы хоть раз сами распарсили хоть одну базу, таких вопросов у Вас бы не возникало.
    Объяснить?

  28. Евгений:

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

  29. Евгений
    Набираеется база, не важно база форумов это или база каталогов.
    Затем ручками заполняется и распознается несколько форм — они становятся образцами. Затем проганяем всю базу, ту которую насобирали, на предмет распознания ОДНОТИПНЫХ форм заполнения… однотипные распознали, теперь те, что не однотипны проходятся ручками. Всё это оседает в базе. и вот тут то самое главное!!! Если мы будем использовать новый класс, удалив при этом старый, то естественно наша форма отправки комментария не будет распознона как однотипная, но зато она впоследствии распознается вручную. Если же мы оставим старый класс, то форма будет распознана как однотипная, но эффекта от спама не будет, так как для комментариев было создано другое поле.

    вот примерно так.. ;-) я сейчас под пивом ;-)

  30. Евгений:

    ну собственно как и предполагал.. спасибо!

  31. AlexVah:

    Отличный пост :))

  32. […] несмотря на столь хорошую идею 99%-ой защиты от спама, успешно реализованную на моем блоге, иногда […]

Поделитесь своим мнением
Для оформления сообщений Вы можете использовать следующие тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Поделиться в соцсетях
Яндекс.Метрика
© 2018 Лаборатория комплексного продвижения сайтов Гончарова Константина ™