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