Картинки капча: Капча на основе изображений / Хабр

Содержание

Капча на основе изображений / Хабр

Краткий обзор наиболее известных реализаций

href=«gs264.sp.cs.cmu.edu/cgi-bin/esp-pix»>PIX CAPTCHA от университета Carnegie Mellon — так называемая капча с использованием именованных изображений (naming images CAPTCHA) — пользователь видит несколько картинок и должен выбрать слово, которое подходит по смыслу всем показанным изображениям. Главная проблема этого типа капч в ошибках при написании слова-ответа и в словах-синонимах (например: собака, пес и т.п.) В данном примере это решается выбором варианта ответа из наперед подготовленного списка.
KittenAuth от Оли Варнера (Oli Warner) —
для того, чтобы доказать свою «человечность» посетитель должен выбрать изображения всех животных
определенной породы среди предложенных. К сожалению, ограниченное количество изображений позволяет
воссоздать набор картинок вручную.

Asirra от Microsoft — в общих чертах

похоже на KittenAuth — пользователь должен различить кошек от собак, но, поскольку оперирует

большим количеством упорядоченных изображений (фотографии бездомных животных со специализированного

сайта), то воссоздание базы изображений с целью взлома невозможно. <A

href=«infolab.stanford.edu/~wangz/project/imsearch/IMAGINATION/ACM05/datta.pdf»>IMAGINATION

— капча, которая проходится в два шага. На первом этапе пользователь кликает по картинке, которая

собрана из нескольких изображений и выбирает одно из них. На втором этапе загружается выбранное

изображение, увеличенное, но очень искаженное. Также загружаются варианты названия того, что изображено на картинке,

и пользователь должен выбрать правильный ответ из списка.

Почему капчи, использующие изображения, далеко не так популярны как текстовые?

Я не буду касаться сравнительного анализа возможности взлома, некоторые мысли по этому поводу

можно найти <A

href=«research.microsoft.com/asirra/security.aspx»>здесь

и <A

href=«www.eecs.berkeley.edu/Pubs/TechRpts/2004/5256.html»>здесь.

Я просто хочу высказать свою точку зрения как веб разработчик. Итак, почему?

  • Они слишком большие. Капча не должна занимать домирующее положение на странице.

    Это всего лишь дополнительный элемент, который служит для отсеивания ботов при заполнении форм или

    получении каких-либо данных.
  • Трафик. Несколько картинок, каждая около 5-10 килобайт,

    вместе это довольно много, как для одной страницы. Посетители, использующие каналы с

    низкой пропускной способностью (тот же диал-ап), будут неприятно удивлены.
  • Несоотвествие общей концепции сайта. Капча с котами (или дельфинами) подходит для развлекательных

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

    несколько картинок на медицинскую тематику, но, по аналогии с Asirra, проблематично найти сайт с большим

    количеством фотографий бездомных докторов 🙂
  • Трудоемкий процес создания и упорядочения базы изображений.

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

Довольно легко заметить, что правое изображение слегка искажено, и довольно легко понять, где именно.
Для того чтобы заметить искажение оригинальное изображение практически и не нужно. Человек без труда справится
с такой задачей даже не зная, что именно должно быть изображено — если только это не картина экспресиониста :).
Реализация
Капча, построенная на основе вышеописанной идеи, для своего решения требует, чтобы посетитель кликнул на
искаженной части изображения. Место клика отмечается красной точкой. Правильно кликнул — прошел, нет — так нет.
Возможно, этот тип капчи даже
более удобен для пользователя, чем классическая текстовая капча (один клик вместо печатания 5-6 букв).
Относительно безопасности: капча на основе изображений может быть взломана с помощью методик,
схожих с теми, что применяютсях для взлома текстовых капч.

В конце концов, лучше один раз увидеть, чем сто раз прочитать. Здесь вы можете увидеть, как выглядит рабочий пример такой капчи, а если вы пишете на ASP.Net, то
здесь можно скачать уже готовый контрол.

Все виды капчи на сайт/ блог

Всем привет, сегодня я расскажу какие бывают виды капчи, которые можно установить на блог (wordpress), для защиты от спама. Я подробно расскажу о каждом виде, о том, как они работают, где их можно бесплатно скачать и как их устанавливать. В общем, прочитав эту статью, вы гарантированно сможете подобрать себе одну из видов, и сможете установить ее себе на блог.

Предисловие.

Зачем нужна эта капча? Все очень просто, в интернете развелось множество программ, при помощи которых некоторые люди оставляют комментарии на блогах. Ну и в чем же беда, спросите вы. А беда в том, что при помощи этих программ, люди оставляют один и тот же комментарий сразу на нескольких блогах, и как правило, в этом комментарии содержаться внешние ссылки. В итоге блоггеры на своих блогах получают не уникальные комментарии, и лишние внешние ссылки, которые могут вести на, вредоносные или нарушающие права законодательства РФ, сайты А это очень плохо влияет на авторитет вашего блога в глазах у поисковых машин (что ведет к понижению в позициях, и вплоть до бана), и в глазах простых пользователей (никому не понравиться то, что на читаемом блоге вы увидите комментарий который уже видели на десяти других блогах, и в комментарии под статьей, например, про детские игрушки, будет стоять ссылка, ведущая на порно сайт, это будет означать что админ просто не следит за своим блогом). Если это новый блог, в котором еще не очень много комментариев оставляется в день, то можно в принципе и руками их удалять, а если это продвинутый блог, на котором ежедневно оставляют по 100 комментов, то перебирать спам, очень тяжело. Вот поэтому и ставится защита от спамеров в виде различной формы с капчей.

Как устанавливать капчу на своем блоге.

Капча выводится специальными плагинами. Вам нужно установить плагин капчи на своем блоге и активировать его.

Существует 2 метода установки

№ 1 Что бы установить плагин, нужно скачать его в zip архиве себе на компьютер, залить его себе на блог и установить.

№ 2 В строке поиска, в админ панели блога вписать имя плагина найти его и нажать активировать.

Это уже кому как удобно.

Различные виды капчи.

Сейчас я напишу все виды капчи которыми можно защитится от спамеров. По мимо названия я дам ссылку с тех мест от куда его можно бесплатно скачать (для тех кто привык устанавливать плагины методом №1).

И так, вот чем можно защитится от спама, на своем блоге, в комментариях:

№ 1 yaCAPTCHA

yaCAPTCHAyaCAPTCHA

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

№2 Anti Spam Image

Anti Spam ImageAnti Spam Image

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

№3 SI Captcha Anti-spam

SI Captcha Anti-spamSI Captcha Anti-spam

Так же как и первые 2 вида, данный плагин, выводит капчу в виде цифр и букв, но здесь есть возможность прослушать, то что изображено на картинке.

№4 reCAPTCHA

reCAPTCHAreCAPTCHA

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

№5 Simple CAPTCHA

Simple CAPTCHASimple CAPTCHA

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

№6 Math Comment Spam Protection

Math Comment Spam ProtectionMath Comment Spam Protection

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

№7 WP-NOTCAPTCHA

WP-NOTCAPTCHAWP-NOTCAPTCHA

Это довольно таки забавная и простая капча для человека, но трудная для робота. Здесь просто надо передвигать ползунок под картинкой так, что бы картинки расположились вертикально.

№8 ImHuman

ImHumanImHuman

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

№9 Checkbot

CheckbotCheckbot

Этот вид капчи является одним из самых простых и удобных способов защиты от спама. Здесь просто нужно выбрать человечка с поднятой рукой.

№10 Dcaptcha – Я не робот

YA-ne-robotYA-ne-robot

Это самая простая капча, для блогов. Здесь, как вы видите, что бы подтвердить то, что вы человек, а не робот, вам просто нужно поставить галочку.

Итог.

Как видите, существует множество видов капчи, какую ставить на свой блог, решать только вам. Единственный совет, чем сложнее выводимая форма с капчей, тем труднее будет «заставить» читателя оставить комментарий, но прочнее защита от спама, и на оборот. Выбирать что-то среднее вы можете, просмотрев выше описанные плагины. При чем посмотреть со стороны комментатора. Например, а вы бы оставили комментарий, если бы стоял тот или иной вид капчи. Вот этим и руководствуйтесь, перед тем как выберите один из видов капчи.

На моем блоге иногда тоже проскакивает спам, но я пока справляюсь с ним вручную, и поэтому на моем блоге стоит самая простая Dcaptcha

Ps: некоторые шаблоны не совместимы с тем или иным плагином капчи, так что если что то не работает, то просто установите другой вид.

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

Ps3: в любом случае, если что то у вас не получается можете спросить у меня прямо здесь в комментариях, обязательно всем отвечу. Ну а моим подписчикам, я не просто объясню, а еще и помогу с установкой и настройкой(естественно абсолютно бесплатно), если уж совсем не получается, могу даже установить все за вас.

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

С вами был, ваш Юрич.

Навигация по записям

Обо мнеОбо мне

Юрич:

Занимаюсь созданием сайтов на WordPress более 6 лет. Работал в нескольких веб-студиях, да и сейчас работаю. Иногда подрабатываю на фрилансе, как на нашем так и на зарубежном. Везде зарекомендовал себя очень хорошо. Если нужен сайт на WordPress, шаблон для сайта или лендинг — не стесняйтесь — пишите. Рад буду помочь!

Не забудьте подписаться на обновления:

Похожие записи

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

Тестируем универсальную распознавалку CAPTCHA — «Хакер»

Содержание статьи

Есть разные способы для обхода CAPTCHA, которыми защищены сайты. Во-первых, существуют специальные сервисы, которые используют дешевый ручной труд и буквально за $1 предлагают решить 1000 капч. В качестве альтернативы можно попробовать написать интеллектуальную систему, которая по определенным алгоритмам будет сама выполнять распознавание. Последнее теперь можно реализовать с помощью специальной утилиты.

 

Решить CAPTCHA

Распознавание CAPTCHA — задача чаще всего нетривиальная. На изображение необходимо накладывать массу различных фильтров, чтобы убрать искажения и помехи, которыми разработчики желают укрепить стойкость защиты. Зачастую приходится реализовывать обучаемую систему на основе нейронные сетей (это, к слову, не так сложно, как может показаться), чтобы добиться приемлемого результата по автоматизированному решению капч. Чтобы понять, о чем я говорю, лучше поднять архив и прочитать замечательные статьи «Взлом CAPTCHA: теория и практика. Разбираемся, как ломают капчи» и «Подсмотрим и распознаем. Взлом Captcha-фильтров» из #135 и #126 номеров соответственно. Сегодня же я хочу рассказать тебе о разработке TesserCap, которую автор называет универсальной решалкой CAPTCHA. Любопытная штука, как ни крути.

Схема анализа CAPTCHA-изображений с помощью TesserCap

 

Первый взгляд на TesserCap

Что сделал автор программы? Он посмотрел, как обычно подходят к проблеме автоматизированного решения CAPTCHA и попробовал обобщить этот опыт в одном инструменте. Автор заметил, что для удаления шумов с изображения, то есть решения самой сложной задачи при распознавании капч, чаще всего применяются одни и те же фильтры. Получается, что если реализовать удобный инструмент, позволяющий без сложных математических преобразований накладывать фильтры на изображения, и совместить его с OCR-системой для распознавания текста, то можно получить вполне работоспособную программу. Это, собственно, и сделал Гурсев Сингх Калра из компании McAfee. Зачем это было нужно? Автор утилиты решил таким образом проверить, насколько безопасны капчи крупных ресурсов. Для тестирования были выбраны те интернет-сайты, которые являются самыми посещаемыми по версии известного сервиса статистики. Кандидатами на участие в тестировании стали такие монстры, как Wikipedia, eBay, а также провайдер капч reCaptcha.

Если рассматривать в общих чертах принцип функционирования программы, то он достаточно прост. Исходная капча поступает в систему предварительной обработки изображений, очищающей капчу от всяких шумов и искажений и по конвейеру передающей полученное изображение OCR-системе, которая старается распознать текст на нем. TesserCap имеет интерактивный графический интерфейс и обладает следующими свойствами:

  1. Имеет универсальную систему предварительной обработки изображений, которую можно настроить для каждой отдельной капчи.
  2. Включает в себя систему распознавания Tesseract , которая извлекает текст из предварительно проанализированного и подготовленного CAPTCHA-изображения.
  3. Поддерживает использование различных кодировок в системе распознавания.

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

Предварительная обработка изображений и извлечение
текста из капчи

 

About

Мы не могли не сказать хотя бы пары слов об авторе замечательной утилиты TesserCap. Его зовут Гурсев Сингх Калра. Он работает главным консультантом в подразделении профессиональных услуг Foundstone, которое входит в состав компании McAfee. Гурсев выступал на таких конференциях, как ToorCon, NullCon и ClubHack. Является автором инструментов TesserCap и SSLSmart. Помимо этого, разработал несколько инструментов для внутренних нужд компании. Любимые языки программирования — Ruby, Ruby on Rails и C#. Подразделение профессиональных услуг Foundstone®, в котором он трудится, предлагает организациям экспертные услуги и обучение, обеспечивает постоянную и действенную защиту их активов от самых серьезных угроз. Команда подразделения профессиональных услуг состоит из признанных экспертов в области безопасности и разработчиков, имеющих богатый опыт сотрудничества с международными корпорациями и государственными

 

Интерфейс. Вкладка Main

После запуска программы перед нами предстает окно с тремя вкладками: Main, Options, Image Preprocessing. Основная вкладка содержит элементы управления, которые используются для запуска и остановки теста CAPTCHA-изображения, формирования статистики теста (сколько отгадано, а сколько нет), навигации и выбора изображения для предварительной обработки. В поле для ввода URL-адреса (элемент управления № 1) должен быть указан точный URL-адрес, который веб-приложение использует для извлечения капч. URL-адрес можно получить следующим образом: кликнуть в правой части CAPTCHA-изображения, скопировать или просмотреть код страницы и извлечь URL-адрес из атрибута src тега изображения . Например, в случае с xakep.ru это адрес www.xakep.ru/common/rateit/captcha.asp?name=xakep.ru. Рядом со строкой адреса находится элемент, задающий количество капч, которые нужно загрузить для тестирования. Так как приложение может одновременно показывать только 12 изображений, в нем предусмотрены элементы управления для постраничного пролистывания загруженных капч. Таким образом, при масштабном тестировании мы сможем пролистывать загруженные капчи и просматривать результаты их распознавания. Кнопки Start и Stop запускают и останавливают тестирование соответственно. После тестирования нужно оценить результаты распознавания изображений, отметив каждый из них как корректный или некорректный. Ну и последняя, наиболее значимая функция служит для передачи любого изображения в систему предварительной обработки, в которой задается фильтр, удаляющий с изображения шумы и искажения. Чтобы передать картинку в систему предварительной обработки, надо щелкнуть на требуемом изображении правой кнопкой мыши и в контекстном меню выбрать пункт Send To Image Preprocessor.

 

Интерфейс. Вкладка Options

Вкладка опций содержит различные элементы управления для конфигурирования TesserCap. Здесь можно выбрать OCR-систему, задать параметры веб-прокси, включить переадресацию и предварительную обработку изображений, добавить пользовательские HTTP-заголовки, а также указать диапазон символов для системы распознавания: цифры, буквы в нижнем регистре, буквы в верхнем регистре, специальные символы.

Теперь о каждой опции поподробней. Прежде всего, можно выбрать OCR-систему. По умолчанию доступна только одна — Tesseract-ORC, так что заморачиваться с выбором тут не придется. Еще одна очень интересная возможность программы — выбор диапазона символов. Возьмем, например, капчу с xakep.ru — видно, что она не содержит ни одной буквы, а состоит только из цифр. Так зачем нам лишние символы, которые только увеличат вероятность некорректного распознавания? Конечно, они нам ни к чему, поэтому при тестировании капчи xakep.ru лучше указать, что она содержит одни цифры: Numerics. Но что если выбрать Upper Case? Сможет ли программа распознать капчу, состоящую из заглавных букв любого языка? Нет, не сможет. Программа берет список символов, используемых для распознавания, из конфигурационных файлов, находящихся в \Program Files\Foundstone Free Tools\TesserCap 1.0\tessdata\configs. Поясню на примере: если мы выбрали опции Numerics и Lower Case, то программа обратится к файлу lowernumeric, начинающемуся с параметра tesseditcharwhitelist. За ним следует список символов, которые будут использоваться для решения капчи. По умолчанию в файлах содержатся только буквы латинского алфавита, так что для распознавания кириллицы надо заменить или дополнить список символов.

Теперь немного о том, для чего нужно поле Http Request Headers. Например, на некоторых веб-сайтах нужно залогиниться, для того чтобы увидеть капчу. Чтобы TesserCap смогла получить доступ к капче, программе необходимо передать в запросе HTTP такие заголовки, как Accept, Cookie и Referrer и т. д. Используя веб-прокси (Fiddler, Burp, Charles, WebScarab, Paros и т. д.), можно перехватить посылаемые заголовки запроса и ввести их в поле ввода Http Request Headers. Еще одна опция, которая наверняка пригодится, — это Follow Redirects. Дело в том, что TesserCap по умолчанию не следует переадресации. Если тестовый URL-адрес должен следовать переадресации для получения изображения, нужно выбрать эту опцию.

Ну и осталась последняя опция, включающая/отключающая механизм предварительной обработки изображений, который мы рассмотрим далее. По умолчанию предварительная обработка изображений отключена. Пользователи сначала настраивают фильтры предварительной обработки изображений согласно тестируемым CAPTCHA-изображениям и затем активируют этот модуль. Все CAPTCHA-изображения, загружаемые после включения опции Enable Image Preprocessing, проходят предварительную обработку и уже затем передаются в OCR-систему Tesseract для извлечения текста.

 

Интерфейс. Вкладка Image Preprocessing

Ну вот мы и добрались до самой интересной вкладки. Именно тут настраиваются фильтры для удаления с капч различных шумов и размытий, которые стараются максимально усложнить задачу системе распознавания. Процесс настройки универсального фильтра предельно прост и состоит из девяти этапов. На каждом этапе предварительной обработки изображения его изменения отображаются. Кроме того, на странице имеется компонент проверки, который позволяет оценить правильность распознавания капчи при наложенном фильтре. Рассмотрим подробно каждый этап.

Этап 1. Инверсия цвета

На данном этапе инвертируются цвета пикселей для CAPTCHA-изображений. Код, представленный ниже, демонстрирует, как это происходит:

for(each pixel in CAPTCHA)
{
    if (invertRed is true)
        new red = 255 – current red
    if (invertBlue is true)
        new blue = 255 – current blue
    if (invertGreen is true)
        new green = 255 – current green
}

Инверсия одного или нескольких цветов часто открывает новые возможности для проверки тестируемого CAPTCHA-изображения.

Этап 2. Изменение цвета

На данном шаге можно изменить цветовые компоненты для всех пикселей изображения. Каждое числовое поле может содержать 257 (от  1 до 255) возможных значений. Для RGB-компонентов каждого пикселя в зависимости от значения в поле выполняются следующие действия:

  1. Если значение равно -1, соответствующий цветовой компонент не меняется.
  2. Если значение не равно -1, все найденные компоненты указанного цвета (красный, зеленый или синий) меняются в соответствии с введенным в поля значением. Значение 0 удаляет компонент, значение 255 устанавливает его максимальную интенсивность и т. д.

Этап 3. Градация серого (Шкала яркости)

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

  1. Average -> (Red + Green + Blue)/3.
  2. Human -> (0.21 * Red + 0.71 * Green + 0.07 * Blue).
  3. Average of minimum and maximum color components -> (Minimum (Red + Green + Blue) + Maximum (Red + Green + Blue))/2.
  4. Minimum -> Minimum (Red + Green + Blue).
  5. Maximum -> Maximum (Red + Green + Blue).

В зависимости от интенсивности и распределения цветовой составляющей CAPTCHA любой из этих фильтров может улучшить извлекаемое изображение для дальнейшей обработки.

Изменение помех при изменении различных диапазонов цветового значения пикселей в сторону белого или черного

Этап 4. Сглаживание и резкость

Чтобы усложнить извлечение текста из CAPTCHA-изображений, в них добавляют шум в форме однопиксельных или многопиксельных точек, посторонних линий и пространственных искажений. При сглаживании изображения возрастает случайный шум, для устранения которого потом используются фильтры Bucket или Cutoff. В числовом поле Passes следует указать, сколько раз нужно применить соответствующую маску изображения перед переходом на следующий этап. Давай рассмотрим компоненты фильтра для сглаживания и повышения резкости. Доступны два типа масок изображения:

  1. Фиксированные маски. По умолчанию TesserCap имеет шесть наиболее популярных масок изображения. Эти маски могут сглаживать изображение или повышать резкость (преобразование Лапласа). Изменения отображаются сразу же после выбора маски с помощью соответствующих кнопок.
  2. Пользовательские маски изображения. Пользователь также может настроить пользовательские маски обработки изображений, вводя значения в числовые поля и нажимая кнопку Save Mask. если сумма коэффициентов в этих окошках меньше нуля, выдается ошибка и маска не применяется. При выборе фиксированной маски кнопку Save Mask использовать не требуется.

Этап 5. Вводим оттенки серого

На этом этапе обработки изображения его пиксели могут быть окрашены в широкий диапазон оттенков серого. Этот фильтр отображает распределение градаций серого в 20 бакетах (bucket)/диапазонах. Процент пикселей, окрашенных в оттенки серого в диапазоне от 0 до 12, указан в бакете (bucket) 0, процент пикселей, окрашенных в оттенки серого в диапазоне от 13 до 25, — в бакете (bucket) 1 и т. д. Пользователь может выбрать одно из следующих действий для каждого диапазона значений, соответствующих оттенкам серого:

  1. Оставить без изменения (Leave As Is).
  2. Заменить белым (White).
  3. Заменить черным (Black).

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

Этап 6. Настройка отсечения (cutoff)

Этот фильтр строит график зависимости значения уровня серого от частоты встречаемости и предлагает выбрать отсечение. Принцип работы отсекающего фильтра показан ниже в псевдокоде:

if (pixel’s grayscale value <= Cutoff)
    pixel grayscale value = (0 OR 255) -> в зависимости, от того какая опция выбрана (<= или => : Set Every Pixel with value <=/=> Threshold to 0. Remaining to 255)

График показывает подробное распределение пикселей CAPTCHA по цветам и помогает удалить помехи с помощью отсечения значений уровня серого.

Этап 7: Обтесывание (chopping)

После применения сглаживающего, отсекающего, bucket- и других фильтров CAPTCHA-изображения все еще могут быть зашумлены однопиксельными или многопиксельными точками, посторонними линиями и пространственными искажениями. Принцип работы фильтра обтесывания заключается в следующем: если количество смежных пикселей, окрашенных в данный оттенок серого, меньше величины в числовом поле, фильтр обтесывания присваивает им значение 0 (черный) или 255 (белый) по выбору пользователя. При этом CAPTCHA анализируется как в горизонтальном, так и в вертикальном направлении.

Этап 8: Изменение ширины границы

Как утверждает автор утилиты, в ходе первоначальных исследований и разработки TesserCap он неоднократно отмечал, что, когда CAPTCHA-изображения имеют толстую граничную линию и ее цвет отличается от основного фона CAPTCHA, некоторые системы OCR не могут распознать текст. Данный фильтр предназначен для обработки граничных линий и их изменения. Граничные линии с шириной, которая указана в числовом поле, окрашиваются в черный или белый по выбору пользователя.

Этап 9: Инверсия серого оттенка

Этот фильтр проходит каждый пиксель и заменяет его значение уровня серого новым, как показано ниже в псевдокоде. Инверсия серого проводится для подгонки изображения под цветовые настройки OCR-системы.

for(each pixel in CAPTCHA)
    new grayscale value = 255 – current grayscale value

Этап 10: Проверка распознавания капчи

Цель данного этапа — передать предварительно обработанное CAPTCHA-изображение OCR-системе для распознавания. Кнопка Solve берет изображение после фильтра инверсии серого, отправляет в OCR-систему для извлечения текста и отображает возвращенный текст в графическом интерфейсе. Если распознанный текст совпадает с текстом на капче, значит, мы правильно задали фильтр для предварительной обработки. Теперь можно перейти на вкладку опций и включить опцию предварительной обработки (Enable Image Preprocessing) для обработки всех последующих загруженных капч.

 

Распознаем капчи

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

Результат анализа капчи xakep.ru с предварительной
обработкой изображений. Судя по результатам, фильтр
подобрать не удалось

Итак, запускаем утилиту и идем на сайт журнала. Видим список свежих новостей, заходим в первую попавшуюся и пролистываем до места, где можно оставить свой комментарий. Ага, коммент так просто не добавить (еще бы, а то бы давно уже всё заспамили) — нужно вводить капчу. Ну что ж, проверим, можно ли это автоматизировать. Копируем URL картинки и вставляем его в адресную строку TesserCap. Указываем, что нужно загрузить 12 капч, и нажимаем Start. Программа послушно загрузила 12 картинок и попыталась их распознать. К сожалению, все капчи оказались либо не распознаны, о чем свидетельствует надпись -Failed- под ними, либо распознаны неправильно. В общем, неудивительно, так как посторонние шумы и искажения не были удалены. Этим мы сейчас и займемся. Жмем правой кнопкой мыши на одну из 12 загруженных картинок и отправляем ее в систему предварительной обработки (Send To Image Preprocessor). Внимательно рассмотрев все 12 капч, видим, что они содержат только цифры, поэтому идем на вкладку опций и указываем, что распознавать нужно только цифры (Character Set = Numerics). Теперь можно переходить на вкладку Image Preprocessing для настройки фильтров. Сразу скажу, что поигравшись с первыми тремя фильтрами («Инверсия цвета», «Изменение цвета», «Градация серого») я не увидел никакого положительного эффекта, поэтому оставил там всё по дефолту. Я выбрал маску Smooth Mask 2 и установил количество проходов равным одному. Фильтр Grayscale buckets я пропустил и перешел сразу к настройке отсечения. Выбрал значение 154 и указал, что те пиксели, которых меньше, нужно установить в 0, а те, которых больше, в 255. Чтобы избавиться от оставшихся точек, включил chopping и изменил ширину границы до 10. Последний фильтр включать не было смысла, поэтому я сразу нажал на Solve.

На капче у меня было число 714945, но программа распознала его как 711435. Это, как видишь, совершенно неверно. В конечном итоге, как я ни бился, нормально распознать капчу у меня так и не получилось. Пришлось экспериментировать с pastebin.com, которые без проблем удалось распознать. Но если ты окажешься усидчивее и терпеливее и сумеешь получить корректное распознавание капч с xakep.ru, то сразу заходи на вкладку опций и включай предварительную обработку изображений (Enable Image Preprocessing). Затем переходи на Main и, кликнув на Start, загружай свежую порцию капч, которые теперь будут предварительно обрабатываться твоим фильтром. После того, как программа отработает, отметь корректно/некорректно распознанные капчи (кнопки Mark as Correct/Mark as InCorrect). С этого момента можно посматривать сводную статистику по распознаванию с помощью Show Statistics. В общем-то, это своеобразный отчет о защищенности той или иной CAPTCHA. Если стоит вопрос о выборе того или другого решения, то с помощью TesserCap вполне можно провести свое собственное тестирование.

 

Результат проверки CAPTCHA на популярных сайтах

Веб-сайт и доля распознанных капч:

  • Wikipedia > 20–30 %
  • Ebay > 20–30 %
  • reddit.com > 20–30 %
  • CNBC > 50 %
  • foodnetwork.com > 80–90 %
  • dailymail.co.uk > 30 %
  • megaupload.com > 80 %
  • pastebin.com > 70–80 %
  • cavenue.com > 80 %

 

Заключение

CAPTCHA-изображения являются одним из самых эффективных механизмов по защите веб-приложений от автоматизированного заполнения форм. Однако слабые капчи смогут защитить от случайных роботов и не устоят перед целенаправленными попытками их решить. Как и криптографические алгоритмы, CAPTCHA-изображения, тщательно протестированные и обеспечивающие высокий уровень безопасности, являются самым лучшим способом защиты. На основе статистики, которую привел автор программы, я выбрал для своих проектов reCaptcha и буду рекомендовать ее всем своим друзьям — она оказалось самой стойкой из протестированных. В любом случае не стоит забывать, что в Сети есть немало сервисов, которые предлагают полуавтоматизированное решение CAPTCHA. Через специальный API ты передаешь сервису изображение, а тот через непродолжительное время возвращает решение. Решает капчу реальный человек (например, из Китая), получая за это свою копеечку. Тут уже никакой защиты нет. 🙂

 

убивая конверсию / Блог компании Variti / Хабр

Капча считается международным стандартом защиты от DDoS-атак, автоматических регистраций и спама. Мы в Variti проанализировали эффективность этого решения и пришли к заключению, что это очень неудобное и малоэффективное средство защиты от ботов, плохо влияющее на конверсию, а области с капчей — это сами по себе уязвимые места для атак.


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

Маркетинговые

Бесит!

Капчу необходимо внимательно разглядывать и периодически вводить несколько раз. Исследование Стэнфорда говорит о том, что их испытуемые в среднем тратили 9.8 секунд, чтобы распознать и ввести визуальную капчу и 28.4 секунды на аудио-версию, причем 50% пользователей отказались ее решать. В 2018 году Baymard Institute, который проводит различные исследования на тему UX, подсчитал, что пользователи не могут решать текстовые CAPTCHA примерно в 8% случаев. Эта цифра увеличивается до 29%, если CAPTCHA чувствительна к регистру.

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

Помимо этого, на рынке уже существует несколько решений для создания капчи, которые размещают в ней рекламу (например, предлагают собрать паззл из логотипа компании). Это не может не сказаться на градусе настроения пользователя.

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

Плохо влияет на конверсию

Как известно, вообще любое лишнее поле для заполнения на сайте ухудшает конверсию. Вот интересное исследование, которое показало, что отказ от капчи приводит к росту конверсии на 3,2%. Точные данные по изменению конверсии в зависимости от капчи каждый ресурс может протестировать самостоятельно, ведь результаты зависят от специфики и аудитории. Но если подходить к проблеме с точки зрения упущенной выгоды, то необходимо посчитать затраты и эффективность в обоих случаях — намного ли выгоднее включать капчу, чем избавляться от спама другими средствами? Тем более, что они есть.

Капчи стали сложнее

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

Еще в далеком 2014-м Google стравила между собой свой лучший алгоритм по разгадыванию самых искажённых текстов и людей: компьютер правильно распознал текст в 99,8% случаев, а люди всего в 33%.

Технические

Капчу легко обойти

Капча не выполняет свою основную функцию — не избавляет владельцев ресурсов от ботов. Вариантов “борьбы” спамеров с капчей даже больше, чем один.

Системы распознавания и нейросети

Системы OCR (оптическое распознавание символов) сейчас работают довольно точно и легко распознают как печатный текст, так и изображения. Решение добавлять “шумовой” фон, лишний цвет и линии, искривлять или сдваивать текст не особенно помогает это предотвратить, зато усложняет прохождение для реального человека.

С развитием технологий машинного обучения и нейронных сетей глубокого обучения дальнейший процесс визуального усложнения капч выглядит бесперспективным. Полносверточная нейронная сеть, в которой на входе подается изображение, а на выходе выдается нужное изображение или несколько изображений (карты центров) распознает текстовые капчи в большинстве случаев. Однако для нее же решаема и капча с выбором нужных картинок ибо обнаружение и классификация объектов — ведь это именно то, чем и занимается нейросеть (в том числе та самая нейросеть reCAPCHA от Google). Да и некоторые библиотеки, позволяющие работать с нейронными сетями, тоже разработаны в Google (например, Tensorflow).

Существуют сервисы взлома, при которых берется и транскрибируется аудио-версия капчи. При успешном развитии систем распознавания голоса это тоже перестает быть проблемой для опытных спамеров. Есть алгоритмы и скрипты, такие, например, как алгоритм Кока-Янгера-Касами для распознавания двухмерной грамматики, который может распознать более 50% капч. Есть и другие способы обхода проверки:

  • Генераторы чисел и другие системы перебора. Например, если есть один и тот же набор из 10 картинок, которые просто переставляются случайным образом, и нужно на них найти что-то определенное, то есть всего лишь 1024 возможных вариаций
  • Восстановление символов по данным логов
  • “Подглядывание” в скрипты для вызова капч, к примеру, <img scr=”/captcha.php?code = 1234”/>
  • Повторное применение идентификаторов сессий пользователей
  • Наконец, спамеры подключают последние версии распознавалок типа FineReader к своим самообучаемым спам-ботам.

Бизнес по разгадыванию

Существует целый рынок услуг, предлагающих обойти капчу, и это очень дешево. В этой индустрии заняты тысячи реальных людей — жителей Индии или Китая, которые за небольшую плату проходят тесты. Специальные биржи типа Amazon Mechanical Turk предлагают купить десятки разгаданных капч за несколько центов, а многочисленные сервисы еще и постоянно сбивают эту цену. Они же постоянно тысячами создают новые “чистые” аккаунты, которые проходят проверку спам-систем на сайтах легче и быстрее всего.

Наконец, существуют онлайн-ресурсы с “интересным” содержанием типа игр или контентом для взрослых. Прежде чем пользователи смогут увидеть следующую порцию контента, система сделает бэкэнд запрос к Yahoo или Google, захватит оттуда капчу и подсунет её пользователю. И как только пользователь ответит на вопрос, хакер отправит разгаданную капчу на целевой сайт. Популярный сайт с востребованным контентом сделать несложно, если парсить (или попросту красть) интересный контент с целого ряда “легальных” порталов (мы в своей работе часто сталкиваемся с такими “копипастерами”). А хакер в итоге получает большую аудиторию, которая разгадывает чужие капчи, не подозревая об этом.

Не различает плохих и хороших ботов

Помимо плохих ботов, существуют и хорошие — это роботы поисковых систем и браузеров, полезные корпоративные боты разных сервисов, которые ищут или размещают информацию или предлагают пользователю помощь, автоматизируя работу техсаппорта компании или продажи ее услуг. Например, по данным GlobalDots, на текущий момент человеческий трафик составляет 62.1%, плохие боты 20.4%, а хорошие 17.5% (то есть отставание от плохих не такое уж и критичное). К сожалению, метод капчи не различает плохих и хороших ботов, не пропуская равно всех, хотя “хорошие” боты могли бы быть полезны.

Ресурс для атак

Большинство капч сторонние — предоставленные тем же Google или разработчиками капч-решений. Но во многих случаях их генерированием занимается тот же сервер, на котором расположен сайт, и тогда это становится уязвимым местом для атак.

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

Впрочем, эта проблема решаема:

  1. Нужно выбрать определенный тип капчи, который этой проблемы лишен
  2. Расположить капчу на отдельном ресурсе

Вопрос только в том, есть ли у владельца сайта ресурсы, чтобы нанять разработчика, который сделает это качественно.

Замедляет работу сайта

Небольшое замедление может показаться не настолько важной проблемой, но вы будете не правы, если не будете обращать на это внимание. Посмотрите вот на это исследование: в то время как пятая часть маркетологов не считает, что время загрузки влияет на коэффициент конверсии, почти 70% людей признают, что скорость страницы влияет на вероятность покупки.

Как капча может влиять на скорость?

  • Генерация сложного изображения достаточно ресурсоемкая операция с учетом того, что не все показанные коды используются. Поэтому сервисы капчи и сопутствующие им логи и куки могут замедлять работу онлайн-ресурса.
  • Проверка кода и ключа осуществляется бэкендом, где могут возникнуть сложности с передачей больших файлов. Одноразовые ссылки также требуют проверки на уровне бэкенда, создавая лишнюю нагрузку. Капча может зацикливаться и замусоривать backend и тогда требуется создать механизм кеширования неиспользованных изображений для возможности их показа для других пользователей.
  • Кроме того, у многих капч-сервисов неудобный API как самого виджета капчи, так и сервера, и с этим разработчику тоже придется помучиться.

Это все?

Увы, нет. Есть еще несколько моментов.

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

Во-вторых, давайте подумаем о поисковых системах. Если поисковые системы “обеляются” по user-agent, то капча неэффективна. Если капча показывается всем — то может показаться и поисковикам, и сайт будет иметь проблемы с индексацией.

Не капчей единой

Существует множество других форм защиты, порой даже более эффективной для борьбы с ботами. Например, на фронтенде это могут быть минимальное время заполнения формы, меньше которого может заполнить только бот, или скрытое поле (display:none), которое не увидит человек, но заполнит бот.

На сетевом уровне это могут быть обфускация или шифрование HTML, блокирование определённых user-agent и различные ловушки со стороны веб-сервера: например, создание невидимых разделов сайта, куда попадают только роботы и позже банятся по IP, или фильтрация анонимных прокси.

И, наконец, есть метод, который мы применяем в Variti — это полная фильтрация трафика, который мы считаем единственным полноценным подходом в защите от ботов и DDoS-атак. Мы пропускаем через свои кластеры весь трафик, который идет на сайт или приложение клиентов, а специально настроенные и самообучающиеся алгоритмы определяют и пропускают дальше легитимный трафик от живых пользователей и “хороших” ботов, причем блокировки IP в этом процессе также не требуется. Впрочем, о том, почему мы считаем еще и метод блокировки IP вредоносным, мы поговорим в следующих статьях.

Переход с reCAPTCHA на hCaptcha в Cloudflare / Блог компании RUVDS.com / Хабр

Компания Cloudflare сообщила о том, что она недавно перешла с использования сервиса reCAPTCHA, предоставляемого Google, на сервис hCaptcha, который поддерживает компания Intuition Machines. В Cloudflare очень рады тому, что им удалось совершить этот переход, так как он способствует решению проблем со сбором конфиденциальной информации, актуальных в то время, когда компания полагалась на сервисы Google. Это, кроме того, способствует более гибкой настройке CAPTCHA-задач, предлагаемых посетителям сайтов. Данное изменение, в принципе, затрагивает всех пользователей Cloudflare. Поэтому компания решила поделиться подробностями о переходе на reCaptcha и подготовила материал, перевод которого мы сегодня публикуем.

Использование технологии CAPTCHA в Cloudflare

Одна из предоставляемых Cloudflare услуг заключается в том, что клиентам компании даётся возможность блокировки вредоносного автоматического трафика (бот-трафика). Мы используем множество механизмов, направленных на решение этой задачи. Если мы совершенно уверены в том, что некий трафик является вредоносным, мы его полностью блокируем. Если мы точно знаем о том, что некий трафик — это результат нормальной человеческой деятельности, мы его пропускаем. То же самое относится и к нормальному трафику, генерируемому ботами — вроде ботов поисковых систем. Но иногда, в случаях, когда у нас нет полной уверенности в природе трафика, мы подвергаем этот трафик «испытанию».

У нас есть разные испытания. Некоторые из них полностью автоматические, но одно из таких испытаний требует вмешательства человека. Подобные испытания известны как CAPTCHA (по-русски их называют «капча»). Эта аббревиатура расшифровывается как Completely Automated Public Turing Test to Tell Computers and Humans Apart — полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей. Как видите, несколько букв T в слове CAPTCHA опущено — иначе оно выглядело бы как CAPTTTCHA. Капча-испытания обычно заключаются в том, что пользователю предлагается прочитать искажённый текст и ввести его в поле, или выбрать из набора картинок те, на которых есть светофоры или пешеходные переходы. Суть капча-задач заключается в том, чтобы их легко было решить человеку, но не компьютеру.

В Cloudflare, с самого начала существования компании, пользовались Google-сервисом reCAPTCHA. Этот сервис появился в 2007 году как исследовательский проект университета Карнеги — Меллона. Компания Google купила этот проект в 2009 году. Примерно тогда же появилась и компания Cloudflare. Google давала бесплатный доступ к reCaptcha в обмен на то, что данные из сервиса использовались для обучения систем визуальной идентификации компании. Когда мы искали CAPTCHA-решение для Cloudflare, мы выбрали reCATPCHA из-за того, что этот сервис был эффективным, масштабируемым и бесплатным. Последний пункт этого списка был важен для нас из-за того, что очень многие клиенты Cloudflare используют наши бесплатные сервисы.

О приватности и блокировках

С ранних дней применения reCAPTCHA в Cloudflare некоторые наши клиенты высказывали опасения относительно того, что мы пользуемся сервисом Google. Бизнес Google завязан на таргетированной рекламе. Cloudflare этим не занимается. Мы придерживаемся строгой политики относительно конфиденциальных данных. Нас устраивала политика конфиденциальности, связанная с reCAPTCHA, но мы понимаем причины, по которым некоторые из наших клиентов обеспокоены тем, что им приходится передавать в Google больше данных, чем им хотелось бы.

Кроме того, мы испытываем проблемы в некоторых регионах, в таких, как Китай, где сервисы Google время от времени блокируют. А ведь только один Китай — это 25% интернет-пользователей. В результате нас всегда беспокоило то, что некоторые из этих пользователей не могут работать с сайтами, защищёнными Cloudflare, в том случае, если им предлагается решить капча-задачу.

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

Изменяющаяся бизнес-модель Google

Ранее в этом году Google сообщила нам о том, что они собираются начать взимать плату за использование сервиса reCaptcha. Это — их полное право. Обслуживание капча-нужд Cloudflare, учитывая наши размеры, без сомнения, стоит немалых денег, которые заметны даже в масштабах Google.

И, опять же, взимание платы за использование reCAPTCHA — это абсолютно разумный ход Google. Если выгода компании от обучения систем классификации изображений меньше, чем расходы на поддержание сервиса, совершенно понятно то, что у Google появилось желание брать плату за работу с этим сервисом. В нашем случае это означало бы ежегодные расходы в миллионы долларов, которые понадобились бы лишь для того, чтобы позволить нашим бесплатным пользователям продолжать применять reCAPTCHA. Этого, вместе с другими причинами, в итоге стало достаточно для того, чтобы мы приступили к поиску альтернативы reCAPTCHA.

Самая лучшая капча

Мы проанализировали множество поставщиков CAPTCHA-решений и подумали о разработке собственного сервиса такого рода. В результате оказалось, что наиболее удачной альтернативой reCAPTCHA является hCaptcha. Нам многое понравилось в этом сервисе:

  1. Они не занимаются продажей персональных данных. Они собирают лишь необходимый минимум таких данных. Компания ясно описывает сведения, которые она собирает, и то, как она использует и раскрывает данные. Компания придерживается этих правил, предоставляя сервис hCaptcha Cloudflare.
  2. Система hCaptcha отличается хорошим уровнем производительности (как в плане скорости, так и в плане показателей, касающихся решений капча-задач). Этот уровень соответствует нашим ожиданиям при проведении A/B-тестирования, или даже превышает уровень таких ожиданий.
  3. Сервис hCaptcha обладает надёжным решением для слабовидящих пользователей и для пользователей, испытывающих при работе с веб-страницами проблемы, не связанные со зрением.
  4.  Система поддерживает Privacy Pass, что позволяет снизить частоту показа капча-задач.
  5. Система работает в регионах, где сервисы Google могут быть заблокированы.
  6. Команда hCaptcha отличается гибкостью, она быстро реагирует на обращения, с ней приятно работать.

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

Мы сотрудничаем с сервисом hCaptcha в двух направлениях. Во-первых, мы находимся в процессе выделения мощностей нашей платформы Workers, которая возьмёт на себя большую часть нагрузки при использовании нашими клиентами hCaptcha. Благодаря этому мы сократим расходы Intuition Machines. Во-вторых — мы предложили компании платить ей, вместо того, чтобы она платила бы нам. Это позволит обеспечить компанию ресурсами, необходимыми для масштабирования её сервиса так, чтобы он соответствовал бы нашим нуждам. Хотя это и означает для нас дополнительные расходы, эти расходы — лишь малая доля того, что могло бы пойти на оплату reCAPTCHA. Взамен мы получаем CAPTCHA-платформу, которая гораздо гибче той, которой мы пользовались раньше. Кроме того, у нас появляется возможность взаимодействия с командой разработчиков, которая очень быстро реагирует на наши обращения.

Когда наши клиенты показывают своим пользователям капчу?

Когда мы только начали работу над этим проектом, мы предполагали, что главными потребителями CAPTCHA окажутся наши решения Cloudflare Bot Management и Cloudflare Firewall Rules. Это предположение, в некоторой степени, подтвердилось. Хотя решения Firewall/Bot оказались основными потребителями CAPTCHA, их доля в общем объёме потребления этой услуги оказалась лишь немного больше 50%.

Вот сводка, касающаяся тех наших решений, в рамках которых пользователи запрашивают вывод капчи.

Решения Firewall/Bot находятся в верхней части этого списка. На них приходится основная доля капчи. Эти решения задействуют правила, написанные нашими пользователями. При выполнении условий, задаваемых этими правилами, выводится капча. В качестве примера тут можно привести ситуацию, в которой капча выводится тогда, когда оценка запроса системой Cloudflare Bot Management оказывается неоднозначной. Она, с одной стороны, ниже заданного порогового значения, что может указывать на то, что речь идёт об автоматизированном трафике. Но она, с другой стороны, выше порогового значения, указывающего на неопределённость ситуации. Ещё один распространённый сценарий использования капчи, относящийся к разделу Firewall/Bot, это показ капча-задач для всех запросов к некоему сайту или к некоей конечной точке сайта. Наши клиенты могут поступать так для того чтобы ограничить число подключений к своим серверам, или чтобы замедлить работу автоматизированных систем, перебирающих учётные данные на странице входа в систему или создающих фальшивые учётные записи. Это приводит к тому, что некоторые сайты, находящиеся под защитой Cloudflare, запрашивают показ сотен миллионов капч в день.

Вторым в этом списке идёт наше решение IP Firewall. Оно, в целом, похоже на решения Firewall/Bot, но позволяет анализировать трафик точнее, работая на уровне IP-адреса, ASN или страны. Основной объём капч, выводимых в рамках услуги IP Firewall, имеет отношение к уровням ASN и стран. Вероятно, наши клиенты защищаются так от трафика, связанного с неким ASN (например — может ли трафик от облачного провайдера генерироваться обычными пользователями?), или защищаются от атак, выполняемых из каких-нибудь стран.

Далее идёт служба Security Levels. Этой службой пользуются двумя различными способами:

  1. Она может играть роль инструмента для приблизительной оценки репутации IP-адреса.
  2. Она может работать в режиме I’m Under Attack.

Хотя мы рекомендуем клиентам пользоваться режимом I’m Under Attack только тогда, когда они находятся под активной DDoS-атакой, некоторые наши клиенты держат систему в этом режиме всё время, используя её в роли примитивного механизма для ограничения скорости поступления запросов к сайту и для фильтрации трафика.

Последняя основная область использования капчи относится к одной из наших автоматизированных систем. Например, недавно наши инженеры из отдела защиты от DoS-атак научили Gatebot использовать капчу для устранения небольших проблем в некоторых специфических ситуациях. Теперь Gatebot может писать временные правила, применение которых приводит к показу атакующим капчи.

И наконец, некоторые наши клиенты настраивают показ капчи, создавая наборы правил Rate Limiting и Managed WAF.

Нас, кроме того, интересовал вопрос о типах наших клиентов, использующих капчу. За неделю наши клиенты, пользующиеся услугами бесплатно, запросили показ примерно 40-60% всех капч, выводимых Cloudflare. Этот показатель получен с учётом влияния на показ капч атак на сайты. Среди двух групп наших платных клиентов — корпоративных, и тех, кто оплачивает услуги по факту их оказания, оставшийся объём использования капчи делится примерно поровну. В целом, мы выяснили, что Cloudflare ежесекундно показывает несколько миллионов капч во время атаки на одного или нескольких наших клиентов.

О проблемах перехода на новую технологию

Когда мы меняем какую-то часть системы Cloudflare, это облегчает некоторым из наших клиентов жизнь, но другие клиенты сталкиваются с проблемами. Мы и команда разработчиков hCaptcha готовы к решению любых возникающих сложностей. Если вы или ваши пользователи сталкиваетесь со сложностями при использовании hCaptcha — просим вас написать об этом на форуме или открыть тикет поддержки, приведя при этом как можно более подробное описание случившегося.

Если это возможно — пожалуйста включите в сообщение Ray ID — идентификатор, который обычно появляется в нижней части CAPTCHA-страницы. Это поможет нам разобраться с тем, что пошло не так.

Ray ID

Итоги

Опыт подсказывает нам, что визуальная (и звуковая) капча — это далеко не идеальное решение множества сложных проблем. Cloudflare продолжает работать над тем, чтобы минимизировать число показываемых пользователям капч, и, в итоге, совсем от этой технологии отказаться. Мы планируем ещё писать об этом. И, кстати, знаете, как называется наш внутренний чат, в котором общается команда, занимающаяся работами по внедрению hCaptcha? Можно подумать, что этот чат называется New CAPTCHA. Но на самом деле это не так. Он называется (No)CAPTCHA.

Уважаемые читатели! Вы уже сталкивались с hCaptcha?

Немного об истории CAPTCHA / Блог компании VAS Experts / Хабр

Системы глубокого анализа трафика имеют дополнительную защитную функцию. Речь идет о защите от DDoS. Для этого используется один из самых популярных и эффективных способов — CAPTCHA, или полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей.

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

/ Flickr / F▲IL / CC

Оригинальная система была разработана в начале XXI века инженерами из Университета Карнеги — Меллона, США. Команда под руководством Луиса фон Ана (Luis von Ahn) искала способ фильтрации регистраций на сайтах, выполняемых автоматическими программами и спам-ботами.

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

Однако это быстро привело к появлению нового вида заработка в интернете — решению задач CAPTCHA. Спамеры начали платить людям за ввод «контрольной фразы». Такой доход стал популярен в бедных странах, где возможность получить пусть и минимальные деньги за тысячи решений CAPTCHA достаточно привлекательна.

Несмотря на это, сервис не утратил популярности, наоборот, разработчиков начала беспокоить мысль, что они заставляют миллионы людей бессмысленно переводить изображения в текст, понапрасну растрачивая время и усилия, не принося никакой практической пользы. Поэтому Луис задался вопросом: «Можно ли сделать с этим временем что-то полезное?».

И нашел на него ответ, представив приложение reCAPTCHA спустя некоторое время. Оно по-прежнему было «завязано» на вводе изображений с картинки, но вместо случайного набора символов пользователь должен был «расшифровать» реальный текст из архивных документов. Программное обеспечение того времени уже было способно распознавать печатные тексты с достаточно высокой точностью, однако все равно в книгах со временем чернила расплываются, что мешало компьютерам определить некоторые слова. Человек же с этим справляется без особых проблем.

Первыми в очереди на распознавание оказались архивные номера газеты The New York Times. После этого, когда в 2009 году сервис купила компания Google, расшифровке подверглись старые книги. Получается, что каждый раз, вводя текст с reCAPTCHA, вы разбираете фрагменты из реальных архивных текстов. Луис фон Ан был очень доволен новой версией программы, уверяя, что сервис проживет очень долго, поскольку печатного материала в архивах предостаточно.

Подобные эксперименты были проведены и по распознаванию изображений из Google Maps и Google Street View. Однако в скором времени аналитикам компании Google пришлось искать ответ на успешные попытки автоматизации «взлома» даже самых сложных изображений с вероятностью, превышающей 90%.

Для решения возникшей проблемы Google начали совершенствовать технологию, и в 2015 году инженеры компании представили новое решение, которое не обязывало пользователя распознавать символы. Новая система анализировала поведение пользователя на сайте до момента нажатия проверочной кнопки «Я не робот», а затем делала вывод: человек это или бот.

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

Другие CAPTCHA и иные решения

Помимо самых распространенных систем от компании Google, сегодня имеются и другие решения, направленные на различение человека и машины. Так, разработчики сервиса TextCAPTCHA предлагают пользователям отвечать на простые логические вопросы. Например, о том, какая буква в слове «автомобиль» стоит на третьем месте.

Считается, что таких запутанных формулировок будет достаточно, чтобы обмануть «автомат», а конкретные вопросы гораздо проще в плане восприятия человеком. Также некоторые разработчики тестов Тьюринга придерживаются мнения, что лучше просить пользователей решать несложные математические уравнения.

Еще одно интересное решение было предложено Facebook в январе 2011 года. Компания экспериментировала с так называемой социальной аутентификацией. По словам представителей компании, идея заключалась в том, чтобы показать пользователю несколько фотографий его друга и попросить назвать его имя.

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

Также различными онлайн-сервисами используются и другие методы «фильтрации» пользователей, которые дают еще один уровень защиты. Они заменяют или дополняют CAPTCHA.

/ Flickr / Tarek / CC

Honeypot. В 2007 году Фил Хаак (Phil Haack) предложил любопытный метод определения ботов. Он получил название Honeypot. Его особенность заключается в добавлении дополнительного поля при заполнении онлайн-формы, которое было бы невидимо для пользователя-человека. Бот не способен понять, видимо это поле или нет, потому заполняет его «по инерции», что позволяет администратору заблокировать регистрацию как спам. 

Временные ограничения. В среднем, сколько времени вам требуется на заполнение онлайн-формы с 10 полями? Большинство людей тратит на это несколько минут, в то время как боты делают это практически мгновенно. Идея решения состоит в том, чтобы отметить как подозрительные все регистрации, поля формы во время которой были заполнены быстрее определенного промежутка времени. Этот способ хорошо работает до тех пор, пока спамеры не поймут, что такой временной порог существует, после этого они учат свои системы заполнять поля ввода помедленнее.

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

Аудиокапчи. Это альтернатива визуальной CAPTCHA. Сервис сам «говорит», какие слова нужно ввести. И хотя это решение в теории выглядит эффективным, на практике все упирается в качество колонок компьютера пользователя. А если в доступности у пользователя нет акустической системы или наушников, то он не сможет пользоваться сервисом.

«Гонка вооружений» между специалистами по безопасности и спамерами никогда не закончится. Поэтому постоянно будут разрабатываться все новые механизмы защиты и их обхода. Но несмотря на это технология reCAPTCHA остается одним из самых надёжных способов борьбы с ботнет-сетями и успешно применяется в системе DPI СКАТ для защиты от DDoS-атак. Постоянная разработка платформы и выпуск новых версий позволяет использовать актуальные механизмы защиты.

Если интересно

Декодирование капчи на Python / Хабр

Это перевод и форма повествования от первого лица сохранена. Автор — Бен Бойтер, бакалавр информационных технологий в Университете Чарльза Стерта (CSU).

Большинство людей не в курсе, но моей диссертацией была программа для чтения текста с изображения. Я думал, что, если смогу получить высокий уровень распознавания, то это можно будет использовать для улучшения результатов поиска. Мой отличный советник доктор Гао Джунбин предложил мне написать диссертацию на эту тему. Наконец-то я нашел время написать эту статью и здесь я постараюсь рассказать о всем том, что узнал. Если бы только было что-то подобное, когда я только начинал…

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

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

У меня неплохо получалось — более 60% изображений было успешно разгадано из моей небольшой коллекции. Довольно неплохо, учитывая количество разнообразных изображений в интернете.

При своем исследовании я не нашел никаких материалов, которые помогли бы мне. Да, статьи есть, но в них опубликованы очень простые алгоритмы. На самом деле я нашел несколько нерабочих примеров на PHP и Perl, взял из них несколько фрагментов и получил неплохие результаты для очень простой капчи. Но ни один из них мне особо не помог, т. к. это было слишком просто. Я из тех людей, которые могут читать теорию, но ничего не понять без реальных примеров. А в большинстве статей писалось, что они не будут публиковать код, т. к. боятся, что его будут использовать в плохих целях. Лично я думаю, что капча – это пустая трата времени, т. к. ее довольно легко обойти, если знать как.

Собственно по причине отсутствия каких-то материалов, показывающих взлом капчи для начинающих я и написал эту статью.

Давайте начнем. Вот список того, что я собираюсь осветить в этой статье:

  • Используемые технологии
  • Что такое капча
  • Как найти и извлечь текст из изображений
  • Распознавание изображения с использованием ИИ
  • Обучение
  • Собираем все вместе
  • Результаты и выводы
Используемые технологии

Все примеры написаны на Python 2.5 с использованием библиотеки PIL. Должно работать и в Python 2.6 (под Python 2.7.3 отлично запускается, прим. перев.).

Установите их в указанном выше порядке и вы готовы к запуску примеров.

Отступление

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

Капча, что это такое в конце концов?

В основном капча является примером одностороннего преобразования. Вы можете легко взять набор символов и получить из него капчу, но не наоборот. Другая тонкость – она должна быть простая для чтения человеком, но не поддаваться машинному распознаванию. Капча может рассматриваться как простой тест типа «Вы человек?». В основном они реализуются как изображение с какими-то символами или словами.

Они используются для предотвращения спама на многих интернет-сайтах. Например, капчу можно найти на странице регистрации в Windows Live ID.

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

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

Это довольно простая капча, которая состоит из символов одинакового цвета и размера на белом фоне с некоторым шумом (пиксели, цвета, линии). Вы думаете, что этот шум на заднем плане затруднит распознавание, но я покажу, как его легко удалить. Хоть это и не очень сильная капча, но она является хорошим примером для нашей программы.

Как найти и извлечь текст из изображений

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

Для этого примера я буду использовать извлечение цвета. Это довольно простая техника, с помощью которой я получил довольно неплохие результаты. Именно эту технику я использовал для своей диссертации.

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

  • Белый (фон)
  • Серый (шум)
  • Красный (текст)

На Python это будет выглядеть очень просто.

Следующий код открывает изображение, преобразует его в GIF (облегчает нам работу, т. к. в нем всего 255 цветов) с печатает гистограмму цветов.

from PIL import Image

im = Image.open("captcha.gif")
im = im.convert("P")

print im.histogram()

В итоге мы получим следующее:

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0
, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 2, 0, 1, 0, 0, 1,
0, 2, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 3, 1, 3, 3, 0,
 0, 0, 0, 0, 0, 1, 0, 3, 2, 132, 1, 1, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 15, 0
, 1, 0, 1, 0, 0, 8, 1, 0, 0, 0, 0, 1, 6, 0, 2, 0, 0, 0, 0, 18, 1, 1, 1, 1, 1, 2,
 365, 115, 0, 1, 0, 0, 0, 135, 186, 0, 0, 1, 0, 0, 0, 116, 3, 0, 0, 0, 0, 0, 21,
 1, 1, 0, 0, 0, 2, 10, 2, 0, 0, 0, 0, 2, 10, 0, 0, 0, 0, 1, 0, 625]

Здесь мы видем количество пикселей каждого из 255 цветов в изображении. Вы можете увидеть, что белый (255, самый последний) встречается чаще всего. За ним идет красный (текст). Чтобы убедиться в этом, напишем небольшой скрипт:

from PIL import Image
from operator import itemgetter

im = Image.open("captcha.gif")
im = im.convert("P")
his = im.histogram()

values = {}

for i in range(256):
  values[i] = his[i]

for j,k in sorted(values.items(), key=itemgetter(1), reverse=True)[:10]:
  print j,k

И получаем такие данные:












ЦветКоличество пикселей
255625
212365
220186
219135
169132
227116
213115
23421
20518
18415

Это список из 10 наиболее распространенных цветов в изображении. Как ожидалось, белый повторяется чаще всего. Затем идут серый и красный.

Как только мы получили эту информацию, мы создаем новые изображения, основанные на этих цветовых группах. Для каждого из наиболее распространенных цветов мы создаем новое бинарное изображение (из 2 цветов), где пиксели этого цвета заполняется черным, а все остальное белым.

Красный у нас стал третьем среди наиболее распространенных цветов и это означает, что мы хотим сохранить группу пикселей с цветом 220. Когда я экспериментировал я обнаружил, что цвет 227 довольно близок к 220, так что мы сохраним и эту группу пикселей. Приведенный ниже код открывает капчу, преобразует ее в GIF, создает новое изображение такого же размера с белым фоном, а затем обходит оригинальное изображение в поисках нужного нам цвета. Если он находит пиксель с нужным нам цветом, то он отмечает этот же пиксель на втором изображении черным цветом. Перед завершением работы второе изображение сохраняется.

from PIL import Image

im = Image.open("captcha.gif")
im = im.convert("P")
im2 = Image.new("P",im.size,255)

im = im.convert("P")

temp = {}

for x in range(im.size[1]):
  for y in range(im.size[0]):
    pix = im.getpixel((y,x))
    temp[pix] = pix
    if pix == 220 or pix == 227: # these are the numbers to get
      im2.putpixel((y,x),0)

im2.save("output.gif")

Запуск этого фрагмента кода дает нам следующий результат.



ОригиналРезультат

На картинке вы можете увидеть, что у нас успешно получилось извлечь текст из фона. Чтобы автоматизировать этот процесс вы можете совместить первый и второй скрипт.

Слышу, как спрашиваете: «А что, если на капче текст написан разными цветами?». Да, наша техника все еще сможет работать. Предположите, что наиболее распространенный цвет – это цвет фона и тогда вы сможете найти цвета символов.

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

for each binary image:
  for each pixel in the binary image:
    if the pixel is on:
      if any pixel we have seen before is next to it:
        add to the same set
      else:
        add to a new set

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

from PIL import Image

im = Image.open("captcha.gif")
im = im.convert("P")
im2 = Image.new("P",im.size,255)

im = im.convert("P")

temp = {}

for x in range(im.size[1]):
  for y in range(im.size[0]):
    pix = im.getpixel((y,x))
    temp[pix] = pix
    if pix == 220 or pix == 227: # these are the numbers to get
      im2.putpixel((y,x),0)

# new code starts here

inletter = False
foundletter=False
start = 0
end = 0

letters = []

for y in range(im2.size[0]): # slice across
  for x in range(im2.size[1]): # slice down
    pix = im2.getpixel((y,x))
    if pix != 255:
      inletter = True
  if foundletter == False and inletter == True:
    foundletter = True
    start = y

  if foundletter == True and inletter == False:
    foundletter = False
    end = y
    letters.append((start,end))

  inletter=False
print letters

В результате у нас получалось следующее:

[(6, 14), (15, 25), (27, 35), (37, 46), (48, 56), (57, 67)]

Это позиции по горизонтали начала и конца каждого символа.

ИИ и векторное пространство при распознавании образов

Распознавание изображений можно считать самым большим успехом современного ИИ, что позволило ему внедриться во все виды коммерческих приложений. Прекрасным примером этого являются почтовые индексы. На самом деле во многих странах они читаются автоматически, т. к. научить компьютер распознавать номера довольно простая задача. Это может быть не очевидно, но распознавание образов считается проблемой ИИ, хоть и очень узкоспециализированной.

Чуть ли ни первой вещью, с которой сталкиваются при знакомстве с ИИ в распознавании образов являются нейронные сети. Лично я никогда не имел успеха с нейронными сетями при распознавании символов. Я обычно обучаю его 3-4 символам, после чего точность падает так низко, что она была бы на порядок выше, отгадывай я символы случайным образом. Сначала это вызвало у меня легкую панику, т. к. это было тем самым недостающем звеном в моей диссертации. К счастью, недавно я прочитал статью о vector-space поисковых системах и посчитал их альтернативным методом классификации данных. В конце концов они оказались лучшем выбором, т. к.

  1. Они не требуют обширного изучения
  2. Вы можете добавлять/удалять неправильные данные и сразу видеть результат
  3. Их легче понять и запрограммировать
  4. Они обеспечивают классифицированные результаты, таким образом вы сможете видеть топ X совпадений
  5. Не можете что-то распознать? Добавьте это и вы сможете разпознать это моментально, даже если оно полностью отличается от чего-то замеченного ранее.

Конечно, бесплатного сыра не бывает. Главный недостаток в скорости. Они могут быть намного медленнее нейронных сетей. Но я думаю, что их плюсы все же перевешивают этот недостаток.

Если хотите понять, как работает векторное пространство, то советую почитать Vector Space Search Engine Theory. Это лучшее, что я нашел для начинающих.

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

Уже вернулись? Хорошо. Теперь мы должны запрограммировать наше векторное пространство. К счастью, это совсем не сложно. Приступим.

import math

class VectorCompare:
  def magnitude(self,concordance):
    total = 0
    for word,count in concordance.iteritems():
      total += count ** 2
    return math.sqrt(total)

  def relation(self,concordance1, concordance2):
    relevance = 0
    topvalue = 0
    for word, count in concordance1.iteritems():
      if concordance2.has_key(word):
        topvalue += count * concordance2[word]
    return topvalue / (self.magnitude(concordance1) * self.magnitude(concordance2))

Это реализация векторного пространства на Python в 15 строк. По существу оно просто принимает 2 словаря и выдает число от 0 до 1, указывающее как они связаны. 0 означает, что они не связаны, а 1, что они идентичны.

Обучение

Следующее, что нам нужно – это набор изображений, с которыми мы будем сравнивать наши символы. Нам нужно обучающее множество. Это множество может быть использовано для обучения любого рода ИИ, который мы будем использовать (нейронные сети и т. д.).

Используемые данные могут быть судьбоносными для успешности распознавания. Чем лучше данные, тем больше шансов на успех. Так как мы планируем распознавать конкретную капчу и уже можем извлечь из нее символы, то почему бы не использовать их в качестве обучающего множества?

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

from PIL import Image
import hashlib
import time

im = Image.open("captcha.gif")
im2 = Image.new("P",im.size,255)
im = im.convert("P")

temp = {}

print im.histogram()

for x in range(im.size[1]):
  for y in range(im.size[0]):
    pix = im.getpixel((y,x))
    temp[pix] = pix
    if pix == 220 or pix == 227: # these are the numbers to get
      im2.putpixel((y,x),0)
    

inletter = False
foundletter=False
start = 0
end = 0

letters = []


for y in range(im2.size[0]): # slice across
  for x in range(im2.size[1]): # slice down
    pix = im2.getpixel((y,x))
    if pix != 255:
      inletter = True

  if foundletter == False and inletter == True:
    foundletter = True
    start = y

  if foundletter == True and inletter == False:
    foundletter = False
    end = y
    letters.append((start,end))
  inletter=False

# New code is here. We just extract each image and save it to disk with
# what is hopefully a unique name
  
count = 0
for letter in letters:
  m = hashlib.md5()
  im3 = im2.crop(( letter[0] , 0, letter[1],im2.size[1] ))
  m.update("%s%s"%(time.time(),count))
  im3.save("./%s.gif"%(m.hexdigest()))
  count += 1

На выходе мы получаем набор изображений в этой же директории. Каждому из них присваивается уникальных хеш на случай, если вы будете обрабатывать несколько капч.

Вот результат этого кода для нашей тестовой капчи:

Вы сами решаете, как хранить эти изображения, но я просто поместил их в директории с тем же именем, что находится на изображении (символ или цифра).

Собираем все вместе

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

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

Здесь мы просто загружаем обучающее множество, чтобы иметь возможность сравнивать с ним:

def buildvector(im):
  d1 = {}
  count = 0
  for i in im.getdata():
    d1[count] = i
    count += 1
  return d1
v = VectorCompare()

iconset =  
['0','1','2','3','4','5','6','7','8','9','0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t',' 
u','v','w','x','y','z']

imageset = []

for letter in iconset:
  for img in os.listdir('./iconset/%s/'%(letter)):
    temp = []
    if img != "Thumbs.db":
      temp.append(buildvector(Image.open("./iconset/%s/%s"%(letter,img))))
    imageset.append({letter:temp})

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

count = 0
for letter in letters:
  m = hashlib.md5()
  im3 = im2.crop(( letter[0] , 0, letter[1],im2.size[1] ))

  guess = []

  for image in imageset:
    for x,y in image.iteritems():
      if len(y) != 0:
        guess.append( ( v.relation(y[0],buildvector(im3)),x) )

  guess.sort(reverse=True)
  print "",guess[0]
  count += 1
Выводы

Теперь у нас есть все, что нужно и мы можем попробовать запустить нашу чудо-машину.

Входной файл – captcha.gif. Ожидаемый результат: 7s9t9j

python crack.py
 (0.96376811594202894, '7')
 (0.96234028545977002, 's')
 (0.9286884286888929, '9')
 (0.98350370609844473, 't')
 (0.96751165072506273, '9')
 (0.96989711688772628, 'j')

Здесь мы видем предполагаемый символ и степень уверенности в том, что это действительно он (от 0 до 1).

Похоже, что у нас действительно все получилось!

На самом деле на тестовых капчах данный скрипт будет выдавать успешный результат примерно в 22% случаев (у меня получилось 28.5, прим. перев.).

python crack_test.py
  Correct Guesses -  11.0
  Wrong Guesses -  37.0
  Percentage Correct -  22.9166666667
  Percentage Wrong -  77.0833333333

Большинство неверных результатов приходится на неправильное распознаваине цифры «0» и буквы «О». Нет ничего неожиданного, т. к. даже люди их часто путают. У нас еще есть проблема с разбиванием на символы, но это можно решить просто проверив результат разбиения и найдя золотую середину.

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

Выполнение этого кода на Core 2 Duo E6550 дает следующие результаты:

real	0m5.750s
user	0m0.015s
sys	0m0.000s

От переводчика. У меня на Dual Core T4400 получились следующие результаты:

real	0m0.176s
user	0m0.160s
sys	0m0.012s

В нашем каталоге находится 48 капч, из чего следует, что на разгадывание одной уходит примерно 0.12 секунд. С нашими 22% процентами успешного разгадывания мы можем разгадывать около 432 000 капч в день и получать 95 040 правильных результатов. А если использовать многопоточность?

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

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

5 фактов об обходе CAPTCHA при парсинге веб-страниц (обновлено в 2019 г.)

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

Сегодня мы поговорим о 5 вещах, которые вам нужно знать о CAPTCHA, чтобы помочь вам лучше обходить ее при парсинге веб-страниц.

1. Что такое CAPTCHA?

2. Как работает CAPTCHA

3. Каковы общие типы CAPTCHA

4. Почему веб-сайты применяют CAPTCHA

5. Как работать с CAPTCHA для парсинга веб-страниц

1. Что такое CAPTCHA?

Согласно Википедии, CAPTCHA (полностью автоматизированный общедоступный тест Тьюринга, позволяющий отличить компьютеры и людей друг от друга) — это тип теста «вызов-ответ», используемый в вычислениях для определения того, является ли пользователь человеком.

Он обычно используется в Интернете, особенно при покупке продуктов в Интернете или при входе на веб-сайт.

2. Как работает CAPTCHA

Технология

CAPTCHA основана на тесте Тьюринга, который используется для проверки того, может ли машина мыслить как люди. Цель CAPTCHA — задавать вопросы или решать проблемы, с которыми компьютеры не могут справиться. Обычно он показывает искаженную строку случайных символов или чисел.Это работает, потому что человек, смотрящий на искаженное изображение, может без проблем читать слова, в то время как инструмент соскабливания не распознает их легко. Даже самая сложная автоматизированная система, которая была запрограммирована для сканирования изображения страницы печатного текста и чтения слов на картинке, все еще испытывает трудности с чтением слов, когда слова слишком сильно затемнены или искажены.

3. Каковы общие типы CAPTCHA

CAPTCHA бывает разных размеров и типов.Наиболее распространенными типами CAPTCHA являются CAPTCHA на основе текста, CAPTCHA на основе изображений и CAPTCHA на основе звука.

Текстовый тест CAPTCHA состоит из двух простых частей: случайно сгенерированной последовательности букв и / или цифр, которые появляются в виде искаженного изображения, и текстового поля. Чтобы пройти тест и подтвердить свою личность, просто введите символы, которые вы видите на изображении, в текстовое поле.

Просто показать персонажей для ботов не так уж и сложно. Чтобы увеличить сложность, существует математическая CAPTCHA, которая включает в себя базовую математическую задачу с легко читаемыми числами и 3D CAPTCHA, которая отображает символы с 3D-эффектом.

CAPTCHA CAPTCHA

CAPTCHA на основе изображений обычно предоставляет пользователям изображения объектов, животных, людей или ландшафтов вместо искаженного текста, чтобы отличить человека от компьютерной программы. Пользователи должны выбрать правильные изображения, которые их просят идентифицировать, или перетащить блок в изображение, чтобы сделать его законченным.

CAPTCHA

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

4. Почему веб-сайты применяют CAPTCHA

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

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

5.Как работать с CAPTCHA для парсинга веб-страниц

CAPTCHA может легко сломать настроенные вами сканеры, как только она появится в процессе извлечения, поэтому работа с ней очень важна для парсинга веб-страниц. Лучший способ справиться с CAPTCHA — постараться не встретить ее :). Никогда не пытайтесь очистить веб-сайт слишком часто, а действуйте скорее как человек. (У нас есть еще одна статья, в которой рассказывается о том, как избежать блоков во время очистки, и вы можете проверить это здесь .)

Но есть еще много CAPTCHA, которых нельзя избежать, например, CAPTCHA на странице входа в систему.В Octoparse вы можете вручную решить CAPTCHA так же легко, как и обычно при просмотре сайта. (Посмотрите пример здесь .)

Для людей, которые кодируют свои собственные скреперы, существует множество решателей CAPTCHA, которые можно интегрировать в их систему скрепинга. Например, Death by CAPTCHA и Bypass CAPTCHA позволяют пользователям подключать сервис через API для автоматического решения CAPTCHA во время процесса парсинга. Эти инструменты решения CAPTCHA могут работать с обычными текстовыми CAPTCHA и даже с reCAPTCHA.

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

Автор: Иина Хуанг

Корректура: Изабель Ли

Artículo en español: 5 Cosas que Debes Sabre al Evitar CAPTCHA para El Web Scraping
También puede leer artículos de web scraping en El Website Oficial

20 лучших инструментов для быстрого парсинга веб-сайтов

30 лучших инструментов больших данных для анализа данных

25 приемов для развития вашего бизнеса с помощью извлечения данных из Интернета

Шаблоны веб-скрапинга на вынос

Видео: Создайте свой первый скребок с Octoparse 8

,

Инструкции | Плагин для решения AntiCaptcha

Для любого типа капчи

Плагин всегда добавляет на целевой веб-сайт свой значок рядом с решенной капчей. Этот элемент HTML среди других классов CSS всегда имеет класс .antigate_solver . Таким образом, вы всегда можете найти этот элемент по указанному селектору.

Помимо декоративного назначения, он также может информировать ваш скрипт о статусе решения капчи. Поскольку этот элемент всегда содержит классы типа капчи и статус процесса решения.
Например, у этого багда может быть такая группа классов: «.antigate_solver.recaptcha.in_process» . Это означает, что тип кода — Recaptcha2 (или Recaptcha3), а статус решения — «В процессе».

Типы капчи: recaptcha , funcaptcha , geetest , hcaptcha и image (обычное изображение с искаженными символами).

Статусы решения: in_process , решено , ошибка .

Таким образом, ваш скрипт может полагаться на классы bagde плагина AntiCaptcha и знать статус решения капчи на данный момент.

Решить reCAPTCHA 2

ReCAPTCHA 2 (включая невидимую reCAPTCHA) обнаруживается и решается автоматически на каждой новой странице браузера.
После решения будет запущена специальная функция обратного вызова, в которой будет передан хэш результата.
Обычно на решение требуется около 1 минуты, но вы можете попробовать нашу функцию предварительного кэширования, которая может увеличить общую скорость работы.

Решить reCAPTCHA v3

Просто установите значение для параметра «Желаемый результат» в настройках плагина и не забудьте оставить параметр «Решать reCAPTCHA 3 автоматически» включенным. И она будет автоматически решаться в фоновом режиме на каждой посещаемой вами веб-странице.

Решение FunCaptcha с вращением изображения животных

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

Теперь вы можете решить Funcaptcha через прокси, поэтому ваш IP-адрес и IP-адрес решенной капчи будут совпадать!

ВНИМАНИЕ !!! Для прокси off captcha вам нужно включить Funcaptcha Proxyless задач в двух разных местах:
1) На странице настроек API, чтобы этот тип задачи работал в этом плагине.
2) А также установите флажок Solve Funcaptcha автоматически в настройках плагина.

Решение китайской капчи Geetest

С недавнего времени мы также успешно обрабатываем и решаем капчу Geetest.
Такие капчи будут автоматически обрабатываться на каждой новой странице вашего браузера, и это показано ниже на снимке экрана.

hCaptcha (Cloudfare) решение капчи

hCaptcha будет автоматически обрабатываться на каждой новой странице вашего браузера, и это показано ниже на снимке экрана.

Обычная картинка капчи

Чтобы решить обычную капчу изображения, вы должны посетить страницу, содержащую ее, щелкнуть правой кнопкой мыши по изображению капчи и выбрать «Пометить изображение как источник кода» в контекстном меню (1). Прямо на изображении должен появиться значок плагина AntiCaptcha, что означает, что все похожие изображения на этом веб-сайте будут интерпретироваться как содержащие капчу.

Также необходимо щелкнуть правой кнопкой мыши по полю ввода капчи и выбрать «Пометить ввод как место назначения решения капчи» (2).Также появится значок плагина AntiCaptcha.

Теперь процесс автоматического решения будет производиться для каждой страницы этого домена, содержащей выбранное изображение и поле ввода. Чтобы остановить это, все, что вам нужно сделать, это щелкнуть значок плагина рядом с изображением или полем ввода.

Что дальше?

,

4 расширения для автоматического решения и обхода CAPTCHA в веб-браузерах • Raymond.CC

Если вы отправили форму или зарегистрировали учетную запись в Интернете, вы наткнетесь на CAPTCHA. Существуют различные типы CAPTCHA, включая ввод отображаемых слов или чисел, выполнение некоторых простых математических расчетов, решение визуальной головоломки, идентификацию объектов и т. Д. По сути, цель CAPTCHA — предотвратить спам от роботов, но они также вызывают неудобства для реальные пользователи, особенно слепые и слабовидящие.

bad captcha

bad captcha

Некоторые CAPTCHA могут быть очень трудночитаемыми даже для людей с хорошим зрением. Другие CAPTCHA могут быть действительно неприятными, например, reCAPTCHA от Google. Не довольствуясь тем, что вам нужно решить одну визуальную головоломку, ReCAPTCHA иногда требует, чтобы вы решали четыре или пять головоломок подряд. И если вы введете неправильные символы или нажмете не ту кнопку, вам придется продолжать, пока не получите правильный ответ.

Что-то, что может помочь в работе с CAPTCHA, — это использование расширения браузера, которое может решить эту проблему за вас.Это может быть полезно, если вы плохо видите CAPTCHA, делаете много ошибок или просто сталкиваетесь с ними все время. Здесь мы покажем вам некоторые расширения браузера и связанные с ними службы решения CAPTCHA, которые могут помочь обойти проблему.

1. AntiCaptcha

AntiCaptcha — это хорошо известный и часто рекомендуемый сервис CAPTCHA. Это может немного сбивать с толку, потому что основная служба решения CAPTCHA размещается на anti-captcha.com, а официальное расширение браузера находится на antcpt.ком. Расширение доступно для Chrome и Firefox и связанных браузеров, поддерживающих эти расширения. AntiCaptcha — это платная услуга, которая требует внесения средств на ваш счет для решения каждой CAPTCHA.

Сначала вам нужно зарегистрировать учетную запись AntiCaptcha, а затем добавить немного средств. Вы можете заплатить столько или меньше, сколько захотите, примерно за 1 доллар вы получите 1000 CAPTCHA или 500 решений ReCAPTCHA. Цены колеблются в течение дня, поэтому в часы пик с вас может взиматься дополнительная плата за решение.Пользователи Chrome могут получить 15 пробных кредитов, установив расширение и авторизовав его с помощью учетной записи Google.

Anti captcha copy api key

Anti captcha copy api key

Затем загрузите и установите расширение AntiCaptcha с сайта antcpt.com. Расширения недоступны в интернет-магазинах Chrome или Firefox и должны быть установлены вручную. Подробные инструкции представлены на странице загрузки. После установки скопируйте ключ из своей учетной записи (Настройки> Настройка API), щелкните новый значок AntiCaptcha на панели инструментов браузера, вставьте ключ в поле и нажмите Сохранить.Через секунду или две он должен показать баланс вашего счета AntiCaptcha.

Anti captcha enter key into extension

Anti captcha enter key into extension

AntiCaptcha может решать большинство типов CAPTCHA, включая Google ReCAPTCHA, FunCaptcha, Geetest, Solve Media и CAPTCHA для стандартных изображений. Первые три, о которых мы говорим, могут быть решены автоматически, когда вы загружаете страницу, содержащую одну из этих CAPTCHA. Другие обычные типы требуют, чтобы вы щелкнули правой кнопкой мыши в поле ввода ответа и выберите «Найти и разгадать изображение CAPTCHA для этого ввода» или нажмите Ctrl + Shift + 6.

solve Anti captcha image captcha

solve Anti captcha image captcha

Средняя скорость решения CAPTCHA изображений разумная и обычно занимает 5-20 секунд. Решение ReCaptcha иногда занимает некоторое время, и довольно часто это может быть 30-60 секунд. Настройка кеширования в расширении может помочь, хотя она съедает ваш кредит немного быстрее. AntiCaptcha, пожалуй, единственный доступный сервис, который имеет собственные расширения для браузера, обрабатывает наиболее распространенные типы CAPTCHA и может помочь вам начать работу с минимальными затратами. Конкурирующие услуги могут потребовать добавления средств в размере не менее 10 долларов США.

Скачать расширение для браузера Anticaptcha


2. Buster: Captcha Solver for Humans

Buster, пожалуй, занимает уникальное место на рынке решения капчи, потому что это открытый исходный код, бесплатный для использования и не требует подписки. Он работает, используя распознавание речи, чтобы попытаться решить проблему голоса в CAPTCHA. Недостатком является то, что это расширение работает только с Google ReCAPTCHA, но это, вероятно, самая распространенная форма CAPTCHA на сегодняшний день.Существуют расширения для Chrome, Firefox и Opera.

На момент написания статьи Buster некорректно работал в Firefox (в настоящее время v69). Часто отображается ошибка «Невозможно связаться с reCAPTCHA. Проверьте соединение и попробуйте еще раз ». после попытки решить. Мы отследили эту ошибку и обнаружили, что она начала появляться в Firefox 65. Использование Firefox 64 или более ранней версии должно помочь обойти эту проблему, прежде чем, мы надеемся, она будет исправлена. Расширение Buster для Chrome, похоже, не имеет таких проблем, и во время тестирования оно работало хорошо.

start solving recaptcha with Buster

start solving recaptcha with Buster

После установки расширения Buster Captcha Solver очень прост в использовании и требует всего нескольких щелчков мыши, чтобы начать решение ReCAPTCHA. Как только вы встретите ReCAPTCHA, нажмите «Я не робот», чтобы открыть окно задачи. Внизу появится оранжево-зеленый значок, щелкните по нему, откроется окно голосового вызова, и Бастер начнет разгадывать CAPTCHA. Решение на самом деле довольно быстрое и обычно выполняется менее чем за 30 секунд, что намного быстрее, чем платная AntiCaptcha.

Buster recaptcha challenge solved

Buster recaptcha challenge solved

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

Скачать Buster: Captcha Solver for Humans


3. Rumola

Rumola существует уже довольно давно и, вероятно, является одной из самых продолжительных служб подобного типа. Расширение браузера Rumola раньше было доступно для браузеров Firefox, Chrome и Safari, но, к сожалению, версии Firefox и Safari исчезли. Существует букмарклет на основе Javascript, который может работать практически на любом устройстве, подключенном к Интернету. Он очень ограничен, но заставляет службу работать в других браузерах, которые не могут использовать расширения Chrome.

Rumola работает для CAPTCHA, где вы должны вводить показанные слова, числа, символы или решать математическую головоломку.Он не работает с Google ReCAPTCHA или типом CAPTCHA, где вам нужно выбирать, переупорядочивать или вращать изображения. По умолчанию Rumola будет автоматически искать CAPTCHA на посещенных веб-страницах, хотя эту опцию можно отключить в меню расширения на панели инструментов Chrome.

search for captcha with Rumola

search for captcha with Rumola

Если Rumola обнаруживает CAPTCHA на странице, он накладывает небольшой значок на изображение и текстовое поле ответа. Просто дважды щелкните внутри пустого текстового поля для ответа, и Румола оживит значки во время решения.Или начните вводить текст в любом другом текстовом поле на странице. Если CAPTCHA не обнаружена, вы можете попробовать «Искать CAPTCHA на этой странице» в меню расширения.

Rumola solve captcha

Rumola solve captcha

В случае, если после поиска на странице ничего не обнаружено, щелкните правой кнопкой мыши изображение CAPTCHA и выберите «Распознать это изображение как CAPTCHA». Если маленький значок не анимируется, щелкните правой кнопкой мыши текстовое поле ответа и выберите «Использовать это поле для ввода CAPTCHA». Комбинация одного или обоих этих вариантов должна обеспечить обнаружение и решение CAPTCHA.Румола обычно работает довольно быстро и часто занимает всего 5-10 секунд, чтобы решить CAPTCHA.

Rumola recognise image captcha

Rumola recognise image captcha

Установка Rumola в первый раз даст вам 5 бесплатных кредитов для тестирования. Тем не менее, бесплатные кредиты ненадежны, и вы иногда потеряете их все из-за того, что делаете что-то простое, например, просто пытаясь обнаружить CAPTCHA на странице. Цена составляет 0,99 доллара США за 50 кредитов сроком на 1 год или 1,95 доллара США за 150 кредитов сроком действия шесть месяцев. Это очень дорого по сравнению с другими сервисами, поэтому Rumola, вероятно, лучше подходит для пользователей, которым время от времени требуется вводить CAPTCHA снова и снова.

Скачать Rumola


4. ReCaptcha Solver

ReCaptcha Solver — это стороннее расширение, не связанное с конкретной компанией, решающей капчи. Вместо этого вы можете использовать одну из нескольких различных служб, где у вас может быть платная подписка. Как следует из названия, поддерживается только Google ReCAPTCHA v2, что делает его очень похожим на Buster: Captcha Solver for Humans.

Перед использованием ReCaptcha Solver вам необходимо зарегистрироваться и приобрести кредит с помощью DeathByCaptcha, 2captcha, ImageTyperz, Anti-Captcha, BestCaptchaSolver или EndCaptcha.Затем вы можете выбрать свою службу CAPTCHA из раскрывающегося списка, ввести ее ключ API или имя пользователя / пароль и начать использовать расширение для решения ReCAPTCHA.

Recaptcha solver extension

Recaptcha solver extension

Мы попробовали это расширение с AntiCaptcha и EndCaptcha, и оно сработало, как задумано. Однако мы не можем ручаться за то, насколько хорошо он работает с другими поддерживаемыми сервисами решения CAPTCHA. Скорость, очевидно, будет зависеть от самого сервиса и от того, насколько быстро он решает ReCAPTCHA. Хотя мы рекомендуем сначала попробовать Buster, если вы можете, это стоит попробовать, если у вас уже есть или вы планируете получить кредит от одной из поддерживаемых служб.

Скачать ReCaptcha Solver для Chrome | ReCaptcha Solver для Firefox

Заключительное примечание: Лучшим вариантом, вероятно, является использование комбинации Buster для решения ReCAPTCHA и AntiCaptcha для решения остальных. ReCAPTCHA — это наиболее распространенный тип CAPTCHA, и его решение с помощью AntiCaptcha дороже, поэтому использование Buster означает, что ReCAPTCHA будет решаться быстрее, а ваш кредит AntiCaptcha будет длиться дольше для всего остального.

,

captcha — CCaptcha не отображает изображение yii

Переполнение стека

  1. Около
  2. Товары

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. работы
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

Загрузка…

  1. Авторизоваться
    зарегистрироваться

  2. текущее сообщество

.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *