Время от времени в Интернете появляются статьи или сообщения о том, как CAPTCHA на основе изображений (или даже на основе звука) являются прекрасными для безопасности веб-форм. Я собираюсь указать, почему использование CAPTCHA для безопасности является сумасшедшей идеей, и почему использование его для контроля спама также некорректно.
Первая серьезная проблема с CAPTCHA заключается в том, что их часто считают мерой безопасности, хотя на самом деле это не так. CAPTCHA — это грубый (автоматизированный) способ разделения людей и компьютеров. Он не проверяет и не может проверить, можно ли доверять пользователю или нет. Если вы используете CAPTCHA для безопасности, вы работаете на ложном предположении, что людям можно доверять, а компьютерам (ботам) — нет.
Если ваша стратегия безопасности соответствует принципу «Если это человек, мы можем им доверять», то у вас много проблем.
К счастью, большинство людей понимают, что CAPTCHA вообще не о безопасности, это просто один из многих способов попытаться сократить (но не устранить) автоматическую отправку форм.
Итак, первая основная проблема CAPTCHA заключается в том, что ее слишком часто считают мерой безопасности, хотя на самом деле это не так. Думать о CAPTCHA как о мере безопасности равносильно тому, чтобы думать обо всех людях как о заслуживающих доверия.
Вторая большая проблема с капчей заключается в том, что их относительно легко использовать. В то время как один человек может смотреть только на определенное количество изображений в час, ряд людей, у которых много времени, могут смотреть на тысячи из них в час. И если интернет чему-то нас научил, так это тому, что в Интернете много людей, у которых много времени. Таким образом, хотя капча замедлит одного человека, она не замедлит работу сотен людей.
Вот почему « порно эксплуатирует » работает. Это идея, что изображения CAPTCHA извлекаются с сайта и показываются на сайте злоумышленника. На сайте атакующего есть форма инструктажа своих посетителей, чтобы идентифицировать буквы в изображении, чтобы получить доступ к бесплатному порно. Все потребности взломщик сделать это вбить целую кучу людей, желающих бесплатно порно в такой форме, и он получает решения целого много капчи, которую он может затем представить на оригинальный сайт (ы) — автоматически — для грязной работы ,
Он не должен быть порно, конечно — это просто популярный способ, иллюстрирующий эту CAPTCHA, изъян. Каждый раз, когда человек чего-то хочет или даже немного скучает, вы можете попросить его заполнить форму. Получить бесплатные шутки в свой почтовый ящик, заполните эту форму. Если вы заставите многих людей работать против CAPTCHA, это сделает CAPTCHA неэффективным.
Третья серьезная проблема с CAPTCHA, которая не имеет ничего общего с безопасностью, но я все равно упомяну ее, заключается в том, что по самой своей природе она препятствует удобству использования и доступности.
CAPTCHA отсеивает людей с хорошим зрением и графическим браузером от остальных. Преимущество CAPTCHA обусловлено их доступностью. Если бы вы сделали CAPTCHA более доступной, это сделало бы ее менее эффективной. А как насчет альтернатив? Для слепых пользователей вы можете прочитать цифры в звуковом файле. Теперь вы полагаетесь на пользователя, у которого установлен правильный плагин для звукового плеера. Звук также загружается дольше, и больше может пойти не так. Как насчет зрячих людей, которые предпочитают использовать браузеры в текстовом режиме или которые скрывают изображения, потому что у них очень низкая пропускная способность?
CAPTCHA также вредит юзабилити. Даже человеку с хорошим зрением требуется время и усилия, чтобы пройти капчу. Это хлопоты и раздражение.
Самый простой способ улучшить доступность — это удалить CAPTCHA, потому что цель CAPTCHA — уменьшить доступность.
Если CAPTCHA настолько плох, каковы альтернативы?
Если вы используете CAPTCHA как попытку борьбы с проблемами безопасности, вам необходимо пересмотреть свой подход. CAPTCHA нарушаются в качестве меры безопасности. К сожалению, я считаю, что наилучшей альтернативой является рассмотрение вопросов безопасности на этапе планирования приложения, а не после того, как спам или попытки эксплойтов начинают распространяться. Проще спроектировать безопасное приложение, которое сделает небезопасное приложение безопасным, и частично из этого решает, что не включать в ваше приложение.
Там, где CAPTCHA используется для уменьшения спама, они могут быть заменены другими методами. По моему опыту, много онлайн-комментариев или спама от людей имеют много времени в руках и что-то продать или продвинуть. Опять же, из-за второй большой проблемы с CAPTCHA (см. Выше), мы видим, как CAPTCHA неэффективна против нескольких людей с большим количеством времени на руках.
Одним из возможных способов решения этой проблемы было бы использование байесовских фильтров спама. Байесовские фильтры одинаково хорошо работают при спаме от человека и робота.