Anti-spam form script

Про анти-спам(антиспам) скрипт, избавляющий на 99,95% от спама в формах ввода, будь то фидбэк, гестбук, комментарии, форум, блог и т.п… по просьбам трудящихся ;)

Многих веб-мастеров, да и просто пользователей наверное достали бесмысленное с точки зрения полезной информации спам-посты на многих форумах, в комментариях и блогах. Как и всех, нас это тоже коснулось - искались всякие методы, от капчей до неких надстроек как например Akismet у этого блога. Времени было как всегда мало, а искалось что то очень простое и легкое, и для повсемесного использования!
?тог: при обсуждении на каком-то веб-мастреском форуме, в Рунете, анализе того, что в итоге нужно сим спамеро-аля-”хрумщикам”, был найден простей?ий выход: блокировать ссылко-видные посты.

Скрипт состоит буквально из 2-х строчек, и вставляется непосредственно перед обработкой формы-для-отправки. Пример для php, но главное принцип:

<? if (       stristr( $NAME_FORM, ‘http://‘  )  !== false ||        stristr( $NAME_FORM, ‘www.‘  )  !== false ||        stristr( $NAME_FORM, ‘<a ‘  )  !== false      )  {  header( ‘Location: http://www.site.com/go-off/‘); die();  } ?>

Собственно как видно идет сравнение, ежели в форму пихаются ссылочные значения, то затем “показывается боль?ой палец”. Все :) . Кстати, что бы оставить возможность вставлять ссылки, значение ввв. можно убрать, спамеры в боль?инстве случаев формируют полные ссылочные комманды аля BB-код или HTML, дабы итог был 100%-ый!

Пример, с добавлением значения ’sex’, хотя тут можно добавлять например применимо к форумам - какие либо BB-коды по типу [код=]:

<? if (      stristr( $msg, ‘http://‘  )  !== false ||      stristr( $msg, ‘www.‘  )  !== false ||      stristr( $msg, ‘<a ‘  )  !== false ||     stristr( $msg, ‘sex‘  )  !== false       )  {  header( ‘Location: http://www.site.com/go-off/‘);   die();  } ?>

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Google Bookmarks
  • ЖЖ - LiveJournal
  • News2.ru
  • Memori.ru
  • Yandex Zakladki
  • Digg
  • del.icio.us
  • Technorati
  • Slashdot
  • YahooMyWeb
  • Reddit
  • Facebook
  • M$ Windows Live
  • Twit this (Twitter)
  • MisterWong
  • StumbleUpon
  • Забобрить эту страницу! bobrdobr.ru
  • Хабрахабр
  • Moikrug.ru
  • TwitThis Twitter
  • My AOL
  • Ask Jeeves
  • Bloglines
  • FriendFeed
  • LinkedIn
  • MySpace

Теги/Метки:
1
Vote
Email This Post

24 Комментария к заметке “Anti-spam form script”

  1. 1. info md Says:

    Смотря кокой сайт.

    По на?ему опыту - сайт: www.900.md , где более 50 атак в день - этот метод анти спама не поможет.

  2. 2. Lynx md Says:

    info, почему? :) т.к. по на?ему опыту с пол тыщи “так назывемых вами атак” по примеру сервер.мд /молдова.ру и др. на?их сайтов - всё работает уже почти год ;)

  3. 3. info md Says:

    Каждая атака новые слова – разный текст, не повторяющий.

    ?з предложенного варианта анти-спама получается что мы должны добавлять по 50 IF в день?

    Что касается teg – вариант!

  4. 4. Lynx fr Says:

    так а зачем - читайте внимательнее - все они то ссылочные спамы - ставьте ссылкообразованные выражения и вуаля ;) !

  5. 5. Lynx fr Says:

    гыыыы, как тока повесили сий артикль, спамеры как будто взбала?ились на нас - раз в 10 каждый день наблюдаем возрос?ие “спам-атаки” :-D

  6. 6. Alex Stacanov md Says:

    Я обычно использую плагин для wordpress - Spam Karma 2
    он всегда хоро?о блокирует спам, назначает ему карму и кидает в блэклист

    Тут иногда главное не блокировка, а просто не допуск к модерации, а то бывает в модерации пару сотен комментов…

  7. 7. Lynx fr Says:

    Alex, в том то и дело, что речь о унифицированном скрипте который можно вставить ВЕЗДЕ, а не о плагине к чему либо!

  8. 8. anry ro Says:

    А как тогда добропорядочным пользователям ссылки вставлять ?
    Да, и разве оператор “!==” а не “!=” ?

  9. 9. Lynx fr Says:

    anry, ок, добавьте тогда условие, если только боль?е 2-х ссылочно-образных выражения - тогда спам и го-офф ;)

  10. 10. anry ro Says:

    Значит если пользователь хочет поделиться тремя и боль?е ссылками, то он спаммер ? :) Редкий случай, но все же..

  11. 11. Lynx fr Says:

    приходится жестко, бо спамеры не прощают ничего…
    anry, предлагайте и вы - не проблема, давайте вместе выведем простое - действенное ре?ение.

    з.ы. кстати на счет оператора “!==” а не “!=” — хз, все ок воркает.

  12. 12. anry ro Says:

    Простого и универсального ре?ения не получится :) Каждый раз скорее всего придется настраивать под конкретную систему.

    Например можно добавить проверку на кол-во сообщений автора - если 0, значит фиг ему, а не ссылки.
    Ну а если боль?е, значит не спам-бот, пусть постит :)

    насчет оператора - !== это более жесткое сравнение.
    например для
    a = 3;
    b = 3.0;

    a != b вернет false
    a !== b вернет true (так как разные типы)

  13. 13. Lynx fr Says:

    ну в принципе это уже что то от Блогов берется, да - типа дай авторизацию челу - и он даль?е минует проверки и творит что хотит, ок - согласен ;) - но тогда и получается универсальное что то.. ;) давайте опи?ем це… :-D

    а по оператору, ну так жёсткость тут и нужна была, бо по др. пролезают как черти…

  14. 14. anry ro Says:

    Значит для проверки количества сообщений пользователя добавляем в условие if-a ” && $nr == 0″ , где $nr количество постов юзера :) ?, наверное, придется три предыдущих условия брать в скобки.

    Правда, проблемно будет если система не поддерживает учёт постов :) Тогда придется и этому научить сайт :)

  15. 15. Lynx fr Says:

    да ,есессно учета нет.
    Посему да, систему учета можно позаимствовать у Блого-видных систем, как я понимаю по IP, по куки, ну и по идентификационным данным…

  16. 16. info md Says:

    ?сходя из вы?е сказанного так и хочется попробовать устойчивость сайта на XSS атак.

    Шутка. :)

  17. 17. Lynx fr Says:

    info, why из вы?есказанного?

  18. 18. info md Says:

    -из вы?есказанного-

    ..Я обычно использую плагин для wordpress - Spam Karma 2
    он всегда хоро?о блокирует спам..

    ..для проверки количества сообщений пользователя добавляем в условие if-a ” && $nr == 0″ , где $nr количество постов юзера :) ?, наверное..

    ..систему учета можно позаимствовать у Блого-видных систем, как я понимаю по IP, по куки, ну и по идентификационным данным…

    что касается атак - не буду этого делать.

    // Lynux, по на?ему опыту с пол тыщи “так назывемых вами атак” по примеру сервер.мд /молдова.ру и др. на?их сайтов - всё работает уже почти год … - значит никому это не нужно.

    эта тема более актуальна в странах где более развит интернет бизнес.

    и надо согласится с тем, что если надумали сломать то обязательно сломают, но нам думаю это не грозит.

  19. 19. Lynx fr Says:

    info, последнее верно ;)

  20. 20. Кладоискатель ro Says:

    Жаль тема антиспама устарела ))

  21. 21. Lynx fr Says:

    Цитата Кладоискатель’а от 14 Ноябрь 2008, 23:20:

    Жаль тема антиспама устарела ))

    why?! :-O

  22. 22. Roman ru Says:

    Ну вообщем-то с интересом почитал. Спасибо.

  23. 23. AvtoMn ru Says:

    Спамеры тоже люди и у них тоже сть голова на плечах. Если блогеры придумают одно, они обязательно придумают что-то новое. Можно просто в nofollow. ?ли выбрать стоп слова

  24. 24. Lynx md Says:

    Цитата AvtoMn’а от 28 Июль 2009, 16:56:

    это и есть для “стоп слов”

    касательно nofollow - это не спасает от мусора ведь, ну будет нофолоу, ?о толку, если все равно страница засорена всякими виаграми линками ?!

Оставить Комментарий

Процитировать выбранный текст

Заметки по Теме
» Молдтелеком ворует почтовый траффик - или как возомнил себя С?Бом