Что такое CAPTCHA?
CAPTCHA — сокращение от английского Completely Automated Public Turing test to tell Computers and Humans Apart – полностью автоматизированный публичный тест Тьюринга для различия компьютеров и людей. В рунете нередко можно слышать транскрипцию «капча».
По сути своей CAPTCHA это небольшой тест, с которым легко может справиться человек, но компьютеру решить эту задачу на несколько порядков тяжелее. Основаны тесты на работе органов чувств человека и логики.
Применяется данный тест с одной целью — предотвратить доступ ботов к отправке или публикации на сайтах спам-информации, скачивания каких-либо материалов.
Методы CAPTCHA
Подавляющее большинство методов CAPTCHA предлагает зрительное распознавание графической информации, реже анализ и/или некоторое вычисление и ввод в специальном поле распознанной информации. Рассмотрим наиболее распространённые методы.
1. Самый распространённый метод: пользователю предлагают ввести цифры/символы, изображённые на рисунке. Как правило, символы искажены, размыты, зашумлены помехами.
2. Пользователю предлагается изображение с написанными текстом цифрами и ввести цифры.
3. Пользователю предлагается выполнить простое арифметическое или логическое действие и ввести результат. Метод может быть усложнён сочетанием с предидущим.
4. Метод, основанный на человеческих чувствах, знаниях и ощущениях — из предложенного ряда изображений выбрать правильное, удовлетворяющее поставленному вопросу. Например, из нескольких лиц выбрать красивое. Или из предложенных фруктов выбрать яблоко.
5. Метод, основанный на распознавании человеческой речи.
5. Video-CAPTCHA. Любой из первых трёх методов, в котором вместо изображения информация передаётся пользователю с помощью видеоряда, где буквы и символы находятся в постоянном движении.
Варианты 1, 2 и 3 легкопереносимы с сервиса на сервис и легконастраиваемы. Они не требовательны к хостингам, нересурсоёмки. В то же время, степень защиты остаётся достаточно высокой (при правильной настройке). Методы 4, 5, 6 требуют более серьёзной настройки либо подключение к специализированным сервисам, предоставляющим услуги CAPTCHA.
Самым распространённым является метод 1 — дублирование изображённых символов и букв в специальном поле. Методы, основанные на человеческих знаниях и чувствах, а также связанные с арифметическими или логическими действиями, зависят от менталитета, грамотности посетителя или норм морали, принятых на территории проживания. Это может давать неверные трактования капчи, соответственно, ошибки при тестировании. Естественно, подобные действия могут привести к оттоку посетителей с сайта.
Ошибки, уязвимости и методы противодействия/защиты
Главная возможная ошибка — ошибка или недостаточная профессиональная подготовка программиста к написанию или установке кода капчи. Ошибки программирования капчи позволяют ботам обходить защиту, оставляя реальным посетителям прохождение теста.
Достаточно яркий пример. Вызов картинки CAPTCHA через явное указание проверочного кода, передачей его в качестве параметра вызова изображения: <IMG SRC=»captcha_image.php?value=hqhqhq»>, где «hqhqhq» фигурирует в качестве запрашиваемого кода подтверждения. Уязвимость реализации очевидна: бот сканирует код страницы и выделяет проверочный код, подставляя его в соответствующее поле. Ваша защита ботом пройдена в доли секунды, а реальному человеку понадобится несколько секунд или даже минут на ввод проверочного кода.
Существует метод перебора, применяемый ботами. Капча всегда связана с сессией посетителя. При сравнительно небольшом варианте значений CAPTCHA, бот, регистрируя сессию, последовательно перебирает все варианты, рано или поздно угадывая верное значение.
Комментарии: