Готовые капчи. Капча — что это такое, где и когда CAPTCHA применяется в интернете

Инструкция по правильному распознанию капч на сервисе сайт

ReCaptcha V2 New
Очень популярна в последнее время, представляет из себя 9 мини-картинок, из которых нужно выбрать 2-4 заданных картинки. Какие картинки нужно выбрать указывается либо образцом картинки, либо текстом. В ответ на такую капчу нужно ввести номера картинок, которые нужно выбрать. Номера вводятся без пробелов, без запятых. Если на самих картинках нет номеров, то они считаются слева-направо, сверху вниз. Вот так:
1 2 3
4 5 6
7 8 9

капча правильный
ответ описание
13 справа изобраён образец, капуста. На картинках под номерами 1 и 3 мы видим капусту. В ответ на капчу пишем 13
58 Справа тарелка со спагетти. Этой картинке соответствуют картинки под номерами 5 и 8. На картинке под номер 3 то же макароны, но равиоли, а не спагетти.
239 Образца нет, только текст, на котором написано, какие картинки нужно выбрать. Сами картинки не пронумерованы, так что пользуемся инструкцией выше, что бы понять какой картинке соответсвует правильный номер
45 Можно сначала подумать, что правильный ответ 47. Но на 7 картинке не указатель, а просто вывеска. И остаётся только 4я картинка. Но должно быть минимум 2 подходящих изображения. Присматриваемся внимательнее и видим на 5м изоборажении указатель, сфотографированный с обратной стороны. правильный ответ 45
159
456 Инструкция только на английском языке, но слева дана картинка, поясняющая, что выбирать нужно дорожные знаки.
18 На приведённом образце - яйца. Они же на картинках 1 и 8, хоть они уже и очищены и разрезаны. Правильный ответ - 18
25 На приведённом образце - пирог. На картинках 2 и 5 видим пироги и отвечаем 25.
12 Вебмастер, который прислал капчу, по своему принципу пронумеровал изображения. В данном примере пользуемся его нумерацией и указываем что нужно выбрать 1 и 2 изображение
356 Этот вебмастер в правильном порядке нумерует картинки, но начал нумерацию не с единицы а с нуля.

ReCaptcha v2 с дорожными знаками и указателями улиц

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

капча правильный
ответ описание
1239 Street name = указатели улиц
Улицы всегда написаны белым на зелёном фоне в одну строчку. На изображении 7 дорожный указатель.
1348 Тут всё просто
78

Street signs = дорожные знаки

На этой капче всё просто

278 На изображении #7 укзатель находится не на столбе, как обычные указатели, а на отбойнике. Тем не менее, это дорожный указатель.
36 Знак автобусной остановки это тоже дорожный указатель
1248 Будьте внимательны, на этой капче нас просят указать указатели улиц.
2479 На изображении №1 указатель, а не имя улицы.
1236 На изображении №5 указатель, а не имя улицы. На изображении №2 не видно название улицы, но можно угадать, что оно там есть.

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

капча правильный
ответ описание
video tape простая капча, вводится без проблем
what if? Обратите внимание - знаки препинания тоже нужно вводить
When, where? И запятую и знак вопроса нужно указывать в ответе

i like people В слове LIKE первую букву сложно разобрать, но если смотреть на всю фразу целиком - легко понять что там за буква.
I like people - я люблю людей

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

first post! Первая буква скрыта, но смотря на слово целиком, можно догадаться что там написано FIRST
Но, иногда попадаются такие, которые совсем не разобрать. В таком случае нужно нажать "не могу разобрать"

Другие виды капч

капча правильный
ответ описание

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

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

Основные правила При разработке капчи нужно обязательно соблюдать несколько основных правил:

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

2. Генератор капчи должен быть четко ограничен в используемых символах
Наглядный пример - изображение в начале топика. Конечно, reCAPTCHA - чудесное изобретение, но порой она предлагает ввести символы, которые и в charmap найти сложно. Кстати, когда речь идет о капче с использованием кириллических символов - ни в коем случае генератор не должен использовать букву «ё». Лично я знаю много людей, у которых на ~ (тильда / ё) повешено какое-то действие в системе.

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

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

Итак, по порядку перечислим, что же мы можем использовать:

1. В изображении должно использоваться хотя бы несколько цветов. Желательно всегда разные


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

2. Должен присутствовать шум


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

3. Буквы должны находиться на небольшом расстоянии друг от друга


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

4. Размеры символов должны быть разными


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

5. Отвратительный шрифт


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

6. Символы под случайным углом

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

7. Динамические искажения

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

Итак, что же мы сделаем:
- Контрастный фон, с шумом
- Линии за текстом, линии на тексте
- Текст в случайном положении
- Количество символов будет случайным, от 4 до 7
- Размер каждого символа будет случайным
- Цвет текста каждый раз будет случайным
- Символы будут слегка прикасаться
- Каждый символ будет под случайным небольшим углом

Разработка Определимся с целью:
- Генерация шума
- Генерация текста
- Форма с возможностью обновления капчи
- Обработчик введенных данных
По мере написания статьи понял, что искажения в данном случае абсолютно неуместны. Для тех, кому они все же нужны - в конце топика ссылка на урок по созданию искажений.Пишем форму Обновить капчу Введите капчу:
Тут все предельно ясно, но на всякий случай я откомментировал некоторые строчки. Кстати, обратите внимание, я не установил параметр maxlenght у поля ввода. В большинстве случаев, разработчики устанавливают этот параметр, указывая размер капчи. Во-первых это нехилая такая подсказка для бота, во-вторых у нас количество символов будет динамическим. Все, интерфейс мы написали, пора приступать к созданию скрипта генерацииПишем генератор кода капчи (random.php)
Тут все ограничивается только вашим воображением. Как-то я видел иной способ - выбиралась текущая минута, час, месяц, все это перемножалось, из этого выбирались 10 случайных символов, дважды извлекался MD5-хеш, из него извлекались 6 случайных символов и затем все это еще и перемешивалось. Кстати, обратите внимание на выбранные мною символы - я исключил такие как i, l, 1 и 0, o, c, из-за того, что они слишком похожи друг на друга, в некоторых ситуациях пользователь может ошибиться. Генератор я назвал random.php (далее он будет запрашиваться в других скриптах).Пишем генератор изображения (captcha.php)