Pull to refresh

Comments 111

О методе распознавания каптчей порносайтом слышали? :)
Представьте себе : )

Тут любителю порнушки придется скормить весь топик форума. Иначе возвращаемся к задаче вырезания элемента DOM-дерева.
По-моему, такая каптча себя не оправдывает. Смысл каптчи не в том, чтобы недопустить автоматического добавления, а в том, чтобы это как можно меньше напрягало пользователя. А генерацию лишнего трафика и подтормаживания браузера на больших таблицах сложно назвать дружелюбным к пользователю поведением :)

Хотя, если грамотно все реализовать, то, возможно, ваш вариант будет ничем не хуже уже существующих. Но и его, если перед спамером стоит твердая цель обойти вашу защиту, можно будет преодолеть.

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

Этот метод имеет 2 слабых места. Совместимость с браузерами и возможность предугадывания картинки. Сложность генерации html я как-бы не рассматриваю, это типа моя проблема : ) Браузер, не поддерживающий использованные стили покажет фигню и добропорядочный пользователь будет отсеян. В этом смысле картинки проще. Предугадывание кода базируется на изучении особенностей алгоритма его генерации. Вместо сложного распознавания образа на картинке можно натренировать нейросеть на угадывание того, что надо ввести по php-сессии, например. Ну тут остается только не забыть включить мозги при разработке, чтобы на клиенте не было никакой информации о том, на основании чего будет сгенерировано то или иное значение кода.

Баланс между безопасностью и удобством всегда приходится искать. Тут ничего не поделаешь. Можно, например, просить ввести каптчу только при первом посте в течении определенного времени, а потом пропускать по кукам. Тут-то роботы и обрадуются : )
«Качественно новый подход к защите от автоматических регистраций и прочего» возможно кроется в том, что современный компьютер в принципе уже почти совсем готов к тому, чтобы стать разумным.

У него есть доступ к почти бесконечной базе знаний. А значит теоретически он может начать понимать о чем пишут люди. И, вуаля, мы получаем автоматического премодератора.

При регистрации же собственно можно использовать не только дурацкие картинки но и просто «вопросы на понимание». Робот, который поймет вопрос на понимание считается человеком : )

Хотя, конечно, пока это только фантастика.
Кстати видел хороше капчи - выдавалось несколько картинок людей, и надо было выбрать 3х красивых, а остальные все были почти уродами :) сложность распознования - полная...
во-первых понятие красивый все-таки отличается у разных людей.
во-вторых натренировать нейросеть узнавать красивых людей это как 2 байта переслать.
в-третьих некоторые капчи обходятся очень просто. Угадыванием ответа по воссозданию условий генерации.
насчет красивости - можно к примеру обезьянок вместо уродов ставить :)
насчет нейросетей - у многих "в заначке" есть нейросеть? :)
алгоритмы распознавания образов тоже не у всех «в заначке» лежат. Кстати у вас дома есть фумка? А у вора вот есть. Люди, которые специализируются на написании спам-ботов соответственно владеют необходимым инструментарием.

OpenSource реализаций нейросетей и waveletов достаточно много, надо только выбрать наиболее подходящий.

Из «мирных» применений видел, например, детектор порнографии. С обезьянками будет еще проще. Ну и потом, у всех капч, основанных, на картинках есть минус. Их можно распознавать порносайтом. Так как они легко выдираются из html и отдаются на другой сайт. Предлагаемый механизм ставит дополнительный препон до стадии распознавания.
Уважаемый, если бы вы были знакомы с практикой реализации нейронных сетей (кстати всплески здесь не причем) и решили бы эту задачу - нобелевка вам гарантирована. За создание полноценного искусственного интеллекта.
Я знаком с практикой их применения.
Порнодетектор — реальность. 100% качества он, конечно, не дает, да и не важно. Люди тоже не всегда угадываюь.
Так называемый порнодетектор к распознаванию образов не имеет особенного отношения. Он ищет сплошные участки картинки по цветности приближающиеся к цвету человеческого тела. При определенном количестве или объеме этих участков картинка классифицируется как порно.
Обьясните, что вы понимаете под порно? Это там где дядя сует тете такую большую штуку? или допустим пися во весь экран? :) А допустим загорающую девушку или конкурс бодибилдеров этот детектор не срезает?

Думаю точность - не более 20 процентов.
Что я понимаю под порно : ) Это глубоко личный вопрос. Когда заводят уголовное дело, созывают совет экспертов.

На сайте проекта они отвечали на эти вопросы, надо поискать, я читал полтора года назад, сейчас не помню.
Есть вполне четкие определения этого, но разговор не о том.

Детектор порнографии не может работать так как должен потому что даже человек не может "с ходу" сказать что есть порнография, и уж ботам точно не под силу такая сложная задача. Только абстракции, а это нельзя назвать реализацией задачи.
В том-то и дело что не вполне четкие. Грань между художественной фотографией и порно проходит в человеческом восприятии изображения. Поэтому и созывают экспертный совет культурологов.

С ботами все проще. Надо не пустить школьника на порно-сайт. Достаточно «заподозрить» : ) что это порно.

Так и с красивый/некрасивый обезьянка/человек. Надо чтоб робот угадывал в n раз чаще чем тупой брутфорс. Уже вперед.
Больно часто школьника не будет пускать :)

Тут вообще возможность угадывания с я ставлю под сомнение, вот в чём дело.
Фомка валялась где то :)

Кстати про распознование красивый/не красивый. Совсем недавно гугл приобрела фирму, которая разработала ПО для распознования лиц, причем заметьте, просто распознования лицо/не лицо. Думаю если бы можно было легко распозновать "красивый/не красивый" то гугл не стала бы тратиться на приобретение фирмы, а?
Задачу узнавания лиц решали у нас на кафедре. Приобретение фирмы не особо связано вопросом легко/сложно. Есть рынок фирм, рынок технологий. Одно дело proof of concept, другое — работающая технология.
Есть еще и вопрос выгоды. Что выгодней - сделать самим или купить фирму. Если получилось выгодней купить фирму - соответственно трудозатраты слишком велики. Если эти трудозатраты велики для гугла - то соответственно они будут слишком велики для подавляющего большинства фирм, и тем более для бот-спамеров и прочих троллей. Логично?

Интересен алгоритм распознования.

З.Ы. я сам в общем то не в теме, знаний пока недостаточно :) студент-экономист-второкурсник всё таки :)
Надо разговаривать с теми, кто решал. Я все-таки специализируюсь на системах извлечения данных из web. Распознавание капч для меня — один из возможных инструментов. Пока мы просто игнорируем этот момент, так как нет задач, требующих обхода. Но ребята из LiXto, с которыми мы работаем что-то делали в этом направлении и в т.ч. думали о применении нейросетей.
Думали? Т.е. в прошедшем времени? =)

Кстати, поясните, чем же вы занимаетесь? ;)
Среди прочего я занимаюсь разработкой систем извлечения и преобразования данных. Это такие программы, которые умеют преобразовывать плохо структурированные веб-страницы к структурированной форме и, затем, проводить операции интеграции и трансформации данных.

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

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

Кроме того система должна уметь переходить с одного документа на дуругой, например проходить процедуру регистрации или заполнять формы поиска.
Основная черта айтишников - умение говорить так как [b]точнее[/b], а не как понятнее :)

В общем, вы занимаетесь ээээ заимствованием информации? И для каких целей это служит, если не секрет?

Просто интересная тема :)
Трудно говорить как понятнее не зная заранее уровня знаний собеседника : )

Яндекс-новости видели? Это пример системы интеграции данных. Система извлечения данных может работать не с rss (как яндекс), а с любыми входными форматами.

Цели бывают самые разнообразные. Например последний крупный проект — система поиска авиабилетов для сайта http://www.visiteurope.com.
Мда, сложная задача, особенно при противодействии со стороны тех, у кого эти данные извлекают :)

Скажем так, на этом принципе обязаны строится поисковики следующего поколения? :)
При противодействии получается состав уголовного преступления.

Про следующее поколение — отчасти верно. В отличие от google данные в такой системе аннотированы, поэтому релевантность запросу выше. Собственно, например в flightsearch на visiteurope она равна 100% так как оно либо находит рейс из Амстердама в Париж, либо нет. Поиск-же в гугле даст кроме цен на авиабилеты еще и кучу разнообразного мусора. В минусе, разумеется имеем универсальность.
Про стопроцентную релевантность это мне напомнило анекдот: "Какая вероятность встретить на улице динозавра. - 50%. Либо встречу, либо нет"
Кстати с определенной точки зрения вероятность встретить динозавра на улице именно такая : )
Все классификаторы устроены одинаково. Картинка анализируется на наличие некоторых паттернов. Параметры этих паттернов (размер, освещенность, цвет и т.п.) представляют собой координаты некоторой точки в пространстве параметров. Задача алгоритма классификации - выделить целевую область (области) в этом пространстве, при попадании в которую, картинка относится к соответствующему классу. Алгоритмы классификации могут быть разными - байесовские сети, наивный байесовский классификатор, нейронные сети, ANFIS (нечеткие сети). Основная проблема в выборе этих паттернов, их параметров, формировании структуры и выборе параметров алгоритма классификации.
Мощно загнул :) Я так понял основной проблемой является всё? :)
UFO landed and left these words here
Кстати в этом и заключается преграда для создания более универсальных классификаторов, например для анализа произвольных картинок на предмет опознавания содержимого или для распознавания капчи. Если для распознавания лиц, снятых в формате "паспорт 3х4", одна система паттернов, их параметров, и настроек алгоритма, то стоит повернуть лицо на 45 градусов в бок, все меняется. Так же и капча.
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
По-моему, такая каптча себя не оправдывает. Смысл каптчи не в том, чтобы недопустить автоматического добавления, а в том, чтобы это как можно меньше напрягало пользователя. А генерацию лишнего трафика и подтормаживания браузера на больших таблицах сложно назвать дружелюбным к пользователю поведением :)

Хотя, если грамотно все реализовать, то, возможно, ваш вариант будет ничем не хуже уже существующих. Но и его, если перед спамером стоит твердая цель обойти вашу защиту, можно будет преодолеть.

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


Блин, нажав на кнопку «Сохранить» при редактировании, загнал хабр в противоречивое состояние. Коммент есть, но его как-бы нет.

В целом — согласен. Для практической реализации таблицы не подходят вообще (легко вырезаются). Увеличение траффика на 20-50% допустимо, но не более. Поэтому надо думать, когда и что использовать. Те каптчи, которые показывают большой набор картинок и предлагают кликать также трафикоемки.

Лучшая защита — это нападение это продуманная комбинация нескольких средств. Постоянно просить ввести код — растерять пользователей...
каптча выдирается из сайта и показывается пользователю порносайта. Он дожен ее распознать, за что ему дают очередную картинку. Введенный код уходит роботу, который вводит его в форму на сайте.
Гы. Класс. Тут только если ставить ограничение на ввод секунд эдак 10...
все зависит от посещаемости порносайта : )
Задержки всё равно будут (человеку на порносайте тоже нужн понять что на капче, да и прием-передача тоже не мгновенны), и если поставить достаточно маленькое время - порносайт работать не будет ;)
тогда будут проблемы у людей с проблемной моторикой.
Считайте меня моральным уродом - но я бы обошел вниманием таких людей из чисто практических соображений. При том что инвалидов уважаю и понимаю что не дай бог сам могу им стать..
Дело тут не в том обошел/не обошел. Есть сайты общего пользования, на них распространяется ряд стандартов. Ряд из них требует обеспечения взаимодействия с инвалидами.

Свою домашнюю страницу можно делать как получится. Никто не придерется.
Требует ли?

В общем, не для нас это, не для нас. Вот в Америке куда больше работающих инвалидов ИМХО, причем и работающих в сферах где требуется применение компьютера или использование интернета.
Есть такое дело, называется WAI. Ко многим сайтам предъявляются требования WAI-совместимости.
Если можно, поподбробней? и есть ли российский аналог этому сокращению?
Cобственно российского аналога w3c я тоже не знаю...
Хех :) А жаль, надо сделать ;) раз уж начинаем делать всё по своему (глонасс) так во всём :)
ГЛОНАСС имеет стратегическую ценность. w3c — нет. Операционную систему например мы имеем свою и даже не одну. Только Алкснису об этом не известно : )
хто такой Алкснис? :) про ОСи я знаю, правда названия на вскидку не скажу.
Это депутат такой. Впрчем могу и переврать фамилию. Он выступал за создание собственной ОС силами ABBYY.
Не только в америке. В TU Wien в институте информационных технологий лифт оборудован устройствами «для слепых». Брайль-кнопками и голосовым информатором.
Ну под Америкой я подразумевал основной западный мир (я же не сказал США ;)
да, каптча должна устаревать, но тут нас подстерегает другая проблема на коиента приходится отдать ее ID. А по нему можно восстановить код ответа! Так обходятся очень многие каптчи.

Пользователя просят решить дифуравнение : ) а роботу достаточно взять ID и сообразить, что на b2345a17 надо отвечать 42.
бугога :) я себе в аську такой антиспамбот ставил пару месяцев назад, с дифуравнением :) смена ID тоже в принципе возможна.
А в чём проблема взять исходник какого-нибудь браузера, с его помощью отрендерить ваш мега-закрученный html, получить из него картинку и заняться её распознаванием?
гм. зачем исходник браузера? Есть визуализаторы html.

Проблема в том, что если каптча находится в большом html-документе, ее еще надо там найти. Это тоже задача распознавания. Причем более сложная.
ну как правило капчи на сайте где ее надо ввести стоят на одном месте и имеют все таки какие то элементы (положение в коде, css класс или что-то подобное) которые позволяют капчу выдать боту куда проще :)
Во-первых это место в DOM-дереве тоже можно сделать случайным, а во-вторых, я рассматривал вариант подтверждения капчей каждого поста в форум (такие попадаются). Кроме того, даже в относительно коротком документе можно разместить кучу divов в произвольных местах, которые собравшись вместе, дадут некое изображение.

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

Конечно когда наступит ИИ - все эти потуги будут как то побоку :)
там-же и ответил : )
Кстати правильная капча должна распознаваться человеком с ограничениями по зрению. В топике приведен пример:
сочетание нарисованного текста с вопросом на понимание. Ответить на вопрос невозможно без прочтения (или прослушивания) фрагмента текста, в который встроена картинка, созданная таким образом.
Скажем так, нужно рассчитывать и то что такой человек должен иметь достаточно хорошее зрение для просмотра того что за капчей, от этого и плясать.
Обычно речь идет о форуме, почте, банковском счете и т.п. Все эти вещи прекрасно обрабатываются скринридерами и брайль-мониторами. Возможно это покажется странным, но у Интернета достаточно много слепых и слабовидящих пользователей.
Процент таких пользователей слишком мал, чтобы им нельзя было пренебречь в угоду безопасности, да и как вы сделаете капчу которая обработается скринридером или брайль-монитором? :)
Гм. А вы никогда не замечали ссылку рядом с капчей? Там находится звуковая капча или текстовый вопрос.
Замечал конечно, но достаточно редко, наверное процентах в 5 случаев.
Здесь вообще-то есть специалисты по "мягким вычислениям"? А то тут так запросто оперируют термином "распознавание образов" - "как два байта переслать". Так вот один из лучших алгоритмов у ABBYY даже на правильных строках с контекстным анализом достоверности распознавания дает 3-5% ошибок. Для нерегулярных надписей это 50-70% ошибок. При цветовом и яркостном маскировании решение этой проблемы даст автору сотни миллионов если не миллиардов. Какая, к черту, капчя. Хоть кто-то пытался создать структуру и натренировать нейронную сеть или ANFIS на самую простую задачу?
Создание и тренировка нейросетей — лабораторная работа на специальности АСУ. Не надо цепляться к словам, есть такое понятие — разговорный стиль. У алгоритмов ABBYY несколько другая задача и условия работы. Если спам-робот будет угадывать в 10% случаев это уже успех. Поищите в гугле порнодетектор, посмотрите как он работает, если это ваша специальность.

Бросаясь словами «полноценный искусственный интеллект» и «Нобелевская премия» неплохо-бы сначала дать определение понятия ИИ (само тянет на докторскую), и вспомнить, что математикам нобелевку не дают по определению.
Извиняюсь, конечно Филдсовскую премию. Насчет лабораторных работ, это как "Вы можете рассчитать мост? - Конечно, это проходят на третьем курсе сопромата". На практике, нейронные сети - весьма примитивный по сути, трудно настраиваемый, плохо интерпретируемый и не очень надежный инструмент. Несколько более удобным, но все также примитивным, инструментом является ANFIS. Но распознавание нормальной качественной капчи (на данном этапе развития) это утопия.
Ну то был ответ на «простейшую нейросеть». Вопросы их применимости к распознаванию капч решаются не на уровне можно/нельзя, а насколько это эффективно. Если простой брутфорс даст такой-то процент попаданий, то с «распознавалкой», например в 10 раз больше. Успех? Да. Для спам-бота. Для какой-то другой системы — нет.

Да, если бы с нейросетями и проч. было все просто, никто бы не парился с распознаванием капч порносайтами. Факт что чем сложнее распознать капчу математическим способом, тем труднее (обычно) это сделать и человеку.

Кстати не разбирались, как работает ocrad? Из всех виденных мной ocr-ов она самая странная, но с весьма неплохим качеством распознавания.
Не пробовал. Но взглянув сейчас бегло на исходник можно предварительно сказать, что идея весьма тупая (может поэтому и работает неплохо). Каждый символ (картинка), либо часть этой картинки, рассматривается как некоторый паттерн с параметрами: ширина, высота, координаты центра тяжести, полезная площадь и т.п. Затем по бинарному дереву ищется класс символов, наиболее подходящий для распознаваемого. Минусов у алгоритма - море, о чем честно предупреждают авторы.
Это как-бы понятно. Меня и удивило высокое качество распознавания при таком «тупом» подходе.
Да даже возьмем лабораторную работу. Выкиньте методичку, возьмите произвольную функцию и попытайтесь создать Backpropagation NN аппроксимирующую эту функцию. Пройдет немало времени, прежде чем вы подберете оптимальную структуру для ограниченного обучающего множества без переобучения этой сети.
Верю. Но ведь речь идет о принципиальной возможности. Для разработчика капчи важно знать можно/нельзя. В первую очередь. Во вторую — насколько сложно. В третью — как сделать сложнее. Не запутав при этом человека.

Предлагаемый метод усложняет задачу для робота тем что вместо одной задачи ему придется решать 2 (3,4...). Причем одновременно усложняется задача скармливания капчи человеку. Вам, наверное, проще прикинуть, насколько сложна задача поиска капчеподобного текста в визуализированном html-документе...
Так ведь при визуализации (при условии что место размещения капчи не изменяется) задача сводится к предыдущей, то есть к обычной капче. Для разработчика добавляется геморрой реализации этого + разрастание кода, для хакера - геморрой визуализации и детектирования позиции капчи. Других особенностей вроде нет.
Весь геморрой имеет смысл только если положение капчи заранее предсказать невозможно. Иначе лишняя трата времени. Я рассматривал 2 варианта использования — внедрение в форму ответа на форуме (ну типа рядом с кнопкой «добавить» сейчас) или в сочетании с «вопросом на понимание». В обоих случаях предсказать место изображения невозможно.
Хотя при правильном подходе к переменному размещению такой капчи на странице, сама задача автоматического детектирования места ее размещения весьма нетривиальна.
Я бы ломал так: анализировал места размещения характерных для хтмл-капчи паттернов, перехватывал бы модификации DOM джаваскриптом с анализом положения этих модификаций на странице. Затем визуализировал страницу, по отдетектированному положению и полям вырезал капчу и дальше на порносайт... Конечно какой-то процент ошибок будет, но допустимый для целей хакера.
Гм. при чем тут перехват модификаций DOM. Робот получает html-документ, он может либо визуализировать его целиком, либо искать каптчеподобный элемент DOM-дерева. JS тут не очень нужен, хотя собственно не важно. Кому что привычнее. Пример из топика парсится очень легко, я бы даже не стал тратить время на его реализацию. Он только показывает внешний вид и примерный объем файла.

Смысл появляется если div-ы с абсолютной позицией расставлены по тексту в произвольных местах. И зашумлены div-ами которые в капчу не собираются. Вырезав только div-ы получится некая картинка (если извратиться с css и java-script) можно сделать так, что получится просто бред. Смысл зашумления чтобы при вырезании divов по какому-то признаку получалась неправильная картинка.

Задача хака сводится к поиску правила извлечения divов из структуры. Не всегда его удается найти. Скажем по наличию атрибута «position:absolute» нельзя.

Обработка dom-дерева тоже не всегда надежна и результативна к сожалению.
Да не в этом дело. Дивы, которые входят в капчу, имеют характерные отличия (размеры, цвет, форма и т.п.). Место на странице, где позиционируется большинство таких дивов - вероятное место капчи. Я даже знаю как это реализовать - нечеткими множествами, а именно, алгоритмом разностного групирования.
Перехват модификаций ДОМа важен вот почему: кто мешает внедрить скрипт, реализующий капчу с задержкой, по внешнему событию (движению мыши, сколингу страницы и т.п.)
Все дивы одинаковы. черные/белые пиксели. Ну или цветные. Только некоторые не собираются в картинку, потому что по тем или иным причинам не видны или просто висят в пространстве. Вырезав их всех по какому-то признаку из DOM и визуализировав с 100% вероятностью получаем не то, что видит пользователь.
Висящие в пространстве или невидимые отфильтровываются весьма просто. Сложны для фильтрации те, которые собираются в картинку, но неосмысленную для пользователя. Хотя кто мешает всех их постить на порносайт?
Главное — заставить робота визуализировать весь html. Например резместив изрядное количество групп точек так что пользователь их не видит (находятся позади другого блока), а они там есть и формируют «левые» центры масс.

Вобщем это уже надо обсуждать конкретные алгоритмы/контралгоритмы. Пока речь идет о концепте, понятно, что

а) реализуемо,
б) добавляет гимора спамерам,
в) не является панацеей (изначально не позиционировалась как таковая),
г) сильно усложняет html.

Последний пункт портит дело, но не мешает созданию proof of concept, что и видно из коммента про omgili.
Осталось попробовать создать свой poc и поломать : )
Реализация каптч по событию противоречит ряду требований. И не представляет сложности для обхода. Нет смысла париться с этим вообще.
Представляет. Действие может быть переменным от страницы, к странице и закодировано той же капчей. Плюс контроль брутфорса этих действий.
Если есть js-события, то можно воссоздать их цепочку. Это несложно. Вот если события закодированы капчей (например экранная клавиатура, надо набрать «привет») тогда да.

Но это уже другая капча.
Как контр меру, можно порекомендовать внедрение нескольких капч: одной "истинной" и других, правдоподобных для алгоритма распознавания, но откровенно "ложных" для пользователя. Но вам не кажется, что это уже перебор...
Идея изначально подразумевала примерно это. В сочетании с отсутствием четких признаков выделения html-элементов, ответственных за составление каптчи.
А зачем четкие признаки? Достаточно примерных... В сочетании с нечеткими множествами они помогут локализовать место капчи.
Но вообще говоря все ломается еще проще. Страница целиком почти без модификаций, с измененным логотипом и другим осмысленным контентом подается на порносайт и все...
Ну вот это-то сработает всегда. Можно вообще честно написать — зарегистрируйтесь там-то и мы вам дадим пассворд от сайта.

Вопрос в том, захотят ли потребители порно искать каптчи и вводить их в сложных документах.
А вот и не всегда. Тут идет пересечение проблемы теста Тьюринга (капчи) с другой проблемой - проблемой взаимной аутентификации. При надежном решении проблемы аутентификации, например с использованием третьего терминала (мобильника?), одноразовой кодировочной таблицы (как это сейчас делают в системах банк-клиент), копирование страницы ничего не даст.
зачем. мы просто просим его сделать то-то и то-то. Потом находим подтверждение и даем пароль.
В капче могут быть инструкции для совершения надежной аутентификации. Вопрос в том, сможет ли хакер дискредитировать их другим контентом. Пример: в капче написано - "Воспользуйтесь сервисом мобильной аутентификации MobAuth 2.0. Введите только в мобильник код - 123". Хакер, естественно не трогая капчу, пишет рядом - "в связи с тем, что сервис MobAuth 2.0 временно не работает, введите код здесь ______".
Ну это немного из другой оперы, хотя и близко.
Мать.. Баг Хабра - постю коммент, он отображается в прямом эфире и отсутствует в дереве комментов.

Я бы ломал так: определяю места позиционирования на странице характерных для хтмл-капчи текстовых паттернов, перехватываю джаваскрипт и определяю места на странице характерных модификаций ДОМа. Затем по полям вырезаю возможную капчу и на порносайт. Конечно определенный процент ошибок будет, но допустимый для задач хакера.
Если бот пишется специально для сайта, то остановить его может только постоянное совершенствование защиты.
Сие есть бесспорный факт. Мой топик как раз про один из возможных методов совершенствования. Если робот не сможет заранее предугадать, какой метод использован, то он усложняется до распознавания метода защиты. В результате дешевле окажется пойти на другой сайт : )

В конце-концов любой сайт ломается при помощи рашпиля. Главное его правильно применить.
идея неплоха НО вес такой капчи будет однозначно больше чем картинки, что определенно минус.
Тут речь опять-таки идет о балансе трафик/безопасность. В каких-то ситуациях оно того стоит, в каких-то нет. Пример имеет размер 30k. Это не так много и сравнимо с обычными капчами (если используется полноцветный png). Те, что основаны на угадывании изображения на картинке могут весить и еще больше.

Кроме того глупо говорить собственно о размере капчи. Это спамроботам она нужна «как есть», а пользователь получает ее в комплекте с кучей других данных. Надо думать о том, насколько она увеличивает трафик всего процесса регистрации. Если на 5-10% то, я думаю, можно пережить.
о, спасибо за ссылку : )
Я был уверен, что кто-то это всяко уже реализовал.
Вам надо было публиковать этот топик в коллективном блоге, так как тема может быть интересна широкому кругу людей. Так он бы уже вышел на главную страницу, что привлекает читателей. В случае персонального блога порог вывода - 20 пунктов.
Краткое резюме:
1. Качественно подготовленную капчу автоматически распознать нельзя, только привлечением к распознаванию людей (порносайты).
2. Хтмл-капча хотя и требует значительного увеличения кода, но создает хакеру известные, но принципиально преодолеваемые, трудности для ее локализации.
3. Кардинальным способом ломки такой капчи является фишинг.
4. Этому, отчасти, можно противодействовать использованием средств надежной аутентификации.
Таким образом, проблема капчи сводится к известной проблеме "снаряда и брони", которая принципиально не решаема.
Наскока я понимаю, у меня пока публиковалка не доросла. Или кармы мало или еще что-то. В особенности хабражизни я пока не особо вник.
А вот пример как не надо делать.
тут каптча и распознается скорее всего (пока не пробовал, но удовлетворяет требованиям) тем-же окрадом и вырезается из текста страницы тривиальным враппером. Зато стоит $50.
Only those users with full accounts are able to leave comments. Log in, please.