Harder, Better, Faster, Stronger ... Методы для капчи на основе изображений? - PullRequest
6 голосов
/ 13 октября 2008

Существует множество идей CAPTCHA, не основанных на изображениях. Но как насчет старомодного способа?

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

Вот пример CAPCHA, над которым я работал. Он генерирует функции для двух синусоидальных волн, а затем растягивает текст между ними. Он лежит поверх фона, нарисованного из пула изображений. Image-based CAPTCHA

Как это можно улучшить? (В частности, я использую PHP GD.) На ум приходят следующие вещи:

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

Что входит в превосходное изображение CAPTCHA?


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

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

Ответы [ 10 ]

5 голосов
/ 13 октября 2008

Сделать каждую букву / цифру из шаблона, I.E. несвязанные точки. Это означает, что у компьютера нет возможности узнать, что точка является частью буквы, кроме распознавания образов (которого у них еще нет). Затем обычные искажения и случайные линии.

Как вы делаете это вызов.

РЕДАКТИРОВАТЬ: Кроме того, бонусные очки для образцов различной формы, и попробуйте альфа-прозрачность на символах (по краям или весь персонаж), чтобы они сливались с фоном.

3 голосов
/ 19 октября 2008

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

Добавить волновое искажение и по другой оси . Искажение только по одной оси можно относительно легко проанализировать и обратить вспять.

Не беспокойтесь о цветном фоне . Это очень легко автоматически отфильтровать черный от других цветов. Твой фон мешает только людям.

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

1 голос
/ 17 апреля 2014

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

Так что не нужно беспокоиться "Будет ли этот метод генерации работать?"

1 голос
/ 13 октября 2008

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

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

0 голосов
/ 09 февраля 2009

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

0 голосов
/ 26 января 2009

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

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

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

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

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

Веллингтон Грей прекрасно подводит итоги гонки AI CAPTCHA.

0 голосов
/ 13 октября 2008

Мне нравится идея KittenAuth и проекта Microsoft Asirra . Идея заключается в том, что, хотя OCR в конечном итоге будет развиваться, разрушая вашу традиционную капчу, способность отличить котенка от собаки является на много порядков более сложной проблемой, хотя для людей она абсолютно тривиальна.

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

0 голосов
/ 13 октября 2008

Остерегайтесь предложений ReCaptcha. Я подал неверные данные пару десятков раз, и каждый раз имел успех. Несколько из тех раз я представил неправильные данные для обоих слов, а не только для самого затемненного слова; уровень успеха, как я уже сказал, составил 100%.

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

Как минимум, не используйте это все время: orange
(источник: codinghorror.com )

0 голосов
/ 13 октября 2008

Алгоритмы, которые пытаются разбить капчу, являются сопоставителями шаблонов, которые работают несколькими различными способами: масштабирование и наклон символов, о которых они уже знают, поиск и отслеживание краев и подсчет внутренних отверстий, чтобы помочь. Если вы можете разбить букву на части, изменить ее качество или добавить четкие линии или «царапины» вдоль букв, эти методы помогут. Однако все это довольно спорный вопрос учитывая, что мы имеем Recaptcha для этой цели, и это замечательное приложение третьей стороны для этого. Кроме того, капча поможет обеспечить безопасность вашего сайта, но не остановит тех, кто действительно соблазнен.

0 голосов
/ 13 октября 2008

Я действительно ненавижу CAPTCHA на сайтах, они просто раздражают меня, но если вы хотите попробовать сделать надежный, попробуйте следующее:

  • Возможность получить новое изображение без отправки
  • Разговорная версия для слабовидящих
  • Неравные символы

Я использовал Recaptcha на нескольких сайтах, это хорошее и надежное решение.

Или, если вы хотите по-настоящему повеселиться, проверьте это: http://research.microsoft.com/asirra/

...