Антиспам без Captcha.

www.karman.com.ua
портал о хостинге в Украине
Хостинг + Украина = Karman.com.ua

Сайт от А до Б

/

Основы сайта

/

Интересные скрипты

/

Изучаем PHP

/

Как заработать на сайте

/

Раскрутка сайта

/

CMS


Антиспам без Captcha. 

Еще по теме:
  Антиспам фильтры: как находить правильное программное обеспечение для вашей системы
  Кто предлагает АнтиспАМовое ПО в комплекте поставляемых услуг хостинга?

В последнее время форумы, гостевые, да и всё, что только можно заполнить страдает от неимоверного количества спама. Это и понятно: спаммеры придумывают всё новые механизмы для своих спам-ботов.

Борцы за чистоту Интернет занимаются примерно тем же, только наоборот: придумывают всё новые методы защиты.

Немного о Captcha



Одним из таких методов является показ верификация при помощи Captcha перед тем, как разрешить пользователю отправить какие-либо данные.

Для справки:
CAPTCHA (английская аббревиатура от «Completely Automated Public Turing test to tell Computers and Humans Apart» — полностью автоматизированный публичный тест Тьюринга для отделения людей от компьютеров) — торговая марка университета Карнеги-Мелона, компьютерный тест, используемый для того чтобы определить, человек ли использует систему. Термин появился в 2000 году. В наиболее распространённом варианте CAPTCHA от пользователя требуется ввести символы, изображённые, как правило, в искажённом виде на предлагаемом ему рисунке, иногда с добавлением шума или полупрозрачности. Реже применяются CAPTCHA, основанные на распознавании речи (в основном как альтернатива для людей с нарушениями зрения), либо на других вариантах задач искусственного интеллекта.


http://upload.wikimedia.org/wikipedia/commons/6/69/Captcha.jpg

Думаю, всем знакома эта картинка или её вариации.

Но хорошо ли это? Надо ли заставлять пользователя заполнять ненужные лично ему поля? Хочет ли на самом деле пользователь заполнять эти поля?

Неужели бота нельзя отличить по какому-либо другому признаку? Конечно можно!

Способ 1. Ловушка


Просмотрев исходные коды нескольких ботов, я пришёл к выводу, что боты в основной своей массе жадные: пытаются заполнить всё, что находят. Первый способ напрашивается сам собой.

Допустим, у нас имеется форма:
  1. <form action="/register.php" method="post">
  2. <input type="text" name="login" value="">
  3. <input type="text" name="e-mail" value="">
  4. <input type="submit" value="Отправить">
  5. </form>


Добавим фиктивное поле с id=validator:
  1. <form action="/register.php" method="post">
  2. <input type="text" name="login" value="">
  3. <input type="text" name="e-mail" value="">
  4. <input id="validator" type="text" name="validator" value="">
  5. <input type="submit" value="Отправить">
  6. </form>


Допишем CSS для его сокрытия:
  1. #validator{
  2. display: none;
  3. }


После этого остаётся поправить скрипт, которым обрабатываются данные из нашей формы:
  1. // Если скрытое поле заполнили
  2. if ($_POST['validator']!=''){
  3. die('Ботам ходу нет!');
  4. }
  5. else{
  6. // Тут обычная наша старая привычная обработка формы
  7. }


Способ 2. Ловушка с подменой


Это всё хорошо, скажут многие, но у нас форум на одном из популярных движков. Под него специальные боты, которые заполняют только нужные поля. Да, всё так, но и тут есть выход.

Возьмём ту же форму:
  1. <form action="/register.php" method="post">
  2. <input type="text" name="login" value="">
  3. <input type="text" name="e-mail" value="">
  4. <input type="submit" value="Отправить">
  5. </form>


Тут уже первый способ не пройдёт. Бот будет чётко заполнять поля login и e-mail. Ну да ладно… меняем форму:

  1. <form action="/register.php" method="post">
  2. <input class="validator" type="text" name="login" value="">
  3. <input class="validator" type="text" name="e-mail" value="">
  4. <input type="text" name="login2" value="">
  5. <input type="text" name="e-mail2" value="">
  6. <input type="submit" value="Отправить">
  7. </form>


Правим CSS:
  1. .validator{
  2. display: none;
  3. }


Ну и скрипт:
  1. // Если скрытое поле заполнили
  2. if ($_POST['login']!='' || $_POST['e-mail']!=''){
  3. die('Ботам ходу нет!');
  4. }
  5. else{
  6. // Тут работаем уже с $_POST['login2'] и $_POST['e-mail2']
  7. }


Заключение


В заключение хочется пожелать всем не следовать за толпой. Будь то использование Captcha или что-то ещё. Относитесь к информации критично, следуйте своим путём.
Чтобы обсудить это в форуме, нажмите здесь.


Хостинг-источник: http://karman.com.ua, http://rmcreative.ru/article/web/antispam_no_captcha/


Есть вопросы о хостинге и о сайтах?
и получи ответ от профессионалов, которые обожают помогать людям :).
© СПД Праведно-Счастливый Аладдин Ярославович, 2004-2008. Все права защищены. При цитировании материалов ссылка на www.karman.com.ua обязательна. Редакция "Кармана" может не разделять точку зрения авторов статей, сообщений и ответственности за их содержание не несет.

Быстрый переход к содержимому сайта Karman.com.ua:
Новости, советы, углубленные знания, знания для новичков, законодательство, интересные скрипты, фотогалереи, отчеты, статьи о хостинге: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24
Часто задаваемые общие вопросы о хостинге, про FTP, PHPMyAdmin и MySQL, CPanel, Предустановленные скрипты, WHM, Cron, .htaccess, SSH, Паролирование директорий, О доменах, о работе с сайтом, о Раскрутке сайта, об Электронной почте, про Основы web-программирования: 0, 1
Энциклопедия основных терминов хостинга, программного обеспечения, железной стороны хостинга, технологий, электронной почты и доменов: 0, 1, 2, 3, 4, 5, 6
Сайты о хостинге (форумы, хостинг-провайдеры, студии веб-дизайна, домен-регистраторы, инструментарии в помощь вебмастеру): 0, 1, 2

Rambler's Top100