Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Защита web-сервисов от спама

Автор: Ярослав Полещук

Многие из вас видели, что в гостевых книгах, форумах, при регистрации новых пользователей часто в формах используется защита от роботов - кривенькие буковки и циферки. Этот вид защиты называется captcha. Вот, что по этому поводу сказано в Википедии:

CAPTCHA (английская аббревиатура от «Completely Automated Public Turing test to tell Computers and Humans Apart»...) - ... компьютерный тест, используемый для того, чтобы определить, человек ли использует систему... CAPTCHA чаще всего используется при необходимости предотвратить использование интернет-сервисов ботами, в частности, для предотвращения автоматической регистрации, скачивания файлов, массовых рассылок и т. п.

Я сам использовал эту защиту на своих сайтах. Однако, как-то мне попалась ссылка на ресурс спамеров, где приведено около 20 видов captcha, которые их программа может распознать. По идее все просто - достаточно вспомнить программы распознавания текста для сканеров. Очертание буквы А, как ее не коверкай, все равно принципиально не изменяются, иначе человек, пишущий сообщение в гостевую, тоже не сможет ее узнать.

Мысль о создании чего-то такого, что человек сможет легко распознать, а робот никогда, прочно засела в голове. Первым пришел в голову пример, прочитанный когда-то давно в книге, посвященной искусственному интеллекту: как объяснить машине разницу между кошкой и собакой. Человеку достаточно одного взгляда, а попробуйте хотя бы рассказать, в чем отличия...

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

Выбираем несколько картинок (чем больше - тем лучше), на который изображены различные объекты. Как в детских играх - мячик, цветочек, дерево, машина. Каждому изображению ставим в соответствие его название (текстовое). Теперь нужно предъявить посетителю сайта несколько картинок и рядом напечатать название одной из них с просьбой кликнуть именно по ней. В этом и есть основной принцип этой защиты.

Понятно, что робот может запомнить ваши картинки (ведь их не бесконечное количество) или просто кликать в одну из них до тех пор, пока не угадает - вероятность попадания очень большая. Здесь начинаются хитрости.

Во-первых, можно показывать не целую картинку, а только ее часть. Согласитесь, если вы увидите рот, нос или глаз, то вы однозначно поймете, что это лицо. А для машины - это абсолютно разные картинки.

Во-вторых, помещать наши фрагменты на какой-нибудь фон, делать их полупрозрачными, возможно даже частично перекрывать их друг другом. Главное, чтобы человеку все равно оставалось понятно, куда надо кликать.

И, в-третьих, можно просить кликнуть не на одну картинку, а на несколько в определенном порядке. От этого вероятность попадания роботом уменьшается на порядки.

Вот пример такой captcha. Я просил покликать всех своих родственников, включая детей. Практически ошибок не было. Более того, это выглядело как игра (что, кстати, может дополнительно привлечь посетителей на ваш сайт).

Несколько слов о технической стороне реализации этой программы - мной использован PHP со стандартной графической библиотекой и совсем немножко Ajax. Если возникнут трудности с написанием такого скрипта - могу помочь.

Буду рад услышать ваши мнения по поводу такого способа защиты web-форм от роботов и спама. Ниболее интересные из них будут обязательно здесь опубликованы.

Возможно, кто-либо знает о подобных методах защиты - напишите. Мои поиски по Интернету не увенчались успехом...

Также буду благодарен, если вы, воспользовавшись этой идей, поставите ссылку на данную статью.

Ссылки по теме

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

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
66K
28 декабря 2013 года
Саша Мигловець
23 / / 28.12.2013
Мне нравитсяМне не нравится
4 мая 2014, 16:28:22
Мне бы такую систему... Правда мне нужно на html
2.
12
13 декабря 2005 года
alekciy
3.0K / / 13.12.2005
+1 / -0
Мне нравитсяМне не нравится
19 апреля 2008, 12:45:51
Идея не плохая, но кто сказал, что боты используют только принцип OCR? Существуют боты, которые могут распознать любую картинку. Почему? Поэтому что реально картинки распознают люди, бот просто служит мостом между сайтом и человеком-распрознавателем.

Именно поэтому формирование капчи стоит делать через DOM на клиенте.
3.
27K
05 марта 2007 года
LmSys-Fingers
0 / / 05.03.2007
Мне нравитсяМне не нравится
16 августа 2007, 12:39:12
Идея хорошая но над реализацией нужно ещо подумать
4.
420
10 марта 2006 года
Fobos
197 / / 10.03.2006
Мне нравитсяМне не нравится
15 марта 2007, 00:28:25
Хорошая статья!
5.
27K
03 марта 2007 года
jaroslav
0 / / 03.03.2007
Мне нравитсяМне не нравится
3 марта 2007, 02:10:05
Адрес оригинальной статьи с моими контактами - captcha.opti-mail.net.

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

Процесс проверки реализован через HTTP/1.0 204 No Content

Но на самом деле я просто хотел озвучить идею. Конкретная реализация и настройки - за вами.
6.
18K
08 июля 2006 года
Karpenko
11 / / 08.07.2006
Мне нравитсяМне не нравится
2 марта 2007, 23:42:23
Но всё же я не понял, как реализован процесс проверки куда именно нажал пользователь...
7.
253
07 августа 2004 года
Proger_XP
1.5K / / 07.08.2004
Мне нравитсяМне не нравится
2 марта 2007, 16:42:52
Отлично! А то ведь стандартные средства уже не защищают от ботов
p.s: действительно, добавил бы контакты что ли :)
8.
256
27 июля 2005 года
foxweb
1.0K / / 27.07.2005
+1 / -0
Мне нравитсяМне не нравится
2 марта 2007, 11:13:50
Классная идея! Но на сайт такое не каждый себе поставит.
9.
12K
08 августа 2006 года
Dipish
33 / / 08.08.2006
Мне нравитсяМне не нравится
2 марта 2007, 02:40:37
Ну ты уж слишком извращенно сделал, можно и попроще. Я со 2 раза "прошел" тест. Картинки слишком прозрачные, налезают друг на друга, еще и не всегда понятно что на них. Слишком грузишь юзера. Но это так, что касается реализации.
А идея отличная!!!
10.
24K
16 ноября 2006 года
^DmN^
0 / / 16.11.2006
Мне нравитсяМне не нравится
2 марта 2007, 01:16:42
Ярослав Полещук, а контакты где? :))))))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог