CAPTCHA

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

Название — аббревиатура от английского предложения Completely Automated Public Turing Test To Tell Computers and Humans Apart. На русский его примерно можно перевести как «полностью автоматический тест Тьюринга для отделения компьютеров от людей». Это название очень длинное, поэтому его и сократили до «капчи».

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

Зачем нужна капча

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

Зачем вообще отсеивать ботов? Есть несколько причин:

  • злоумышленники. Боты могут использоваться для разных видов атак на сайты. В первую очередь это DDoS-атаки — автоматизированные массовые запросы, которые перегружают сервер. Еще есть брутфорс — подбор логина и пароля с помощью робота, пробующего разные варианты практически бесконечно;
  • спам. Частый вариант использования бота — отправка «мусорных» рекламных сообщений, которые мешают полезному контенту;
  • махинации. Например, интернет-магазины иногда проводят ограниченные по времени акции вида «Успей купить», и роботы могут мониторить такие предложения, скупая весь акционный товар за несколько секунд.

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

Кто пользуется капчей

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

Например:

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

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

Как может выглядеть капча

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

  • простые вопросы, на которые может однозначно ответить человек, например, «Как звали Пушкина?»;
  • математические примеры, которые нужно решить и ввести результат;
  • мини-игры вида «Кликните на красную кнопку» или «Соберите пазл»;
  • выбор правильных вариантов из списка — обычно это задания вида «Укажите все картинки со светофорами».

Последний пример активно используется в популярном сервисе Google reCAPCHA. Он считается довольно надежным в сравнении с традиционными методами вроде сочетания букв.

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

Идея капчи: тест Тьюринга

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

Алан Тьюринг придумал эмпирический тест, задача которого — определить, может ли существо мыслить. Классический тест устроен так: у человека есть два невидимых собеседника — машина и другой человек. Если тот не может правильно определить, который из них робот, значит, машина способна к мышлению.

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

До последнего времени тест Тьюринга не могла пройти ни одна машина. Недавно это удалось искусственному интеллекту LaMDA от Google. А некоторые рисунки нейросетей GPT-3 и DALL-E 2 уже невозможно отличить от человеческих. Но это не значит, что они могут мыслить: уже доказано, что прохождение теста говорит не о наличии мышления, а об умении его имитировать.

Как устроена капча

Капча — это примитивный тест Тьюринга, автоматизированный и публичный. В ее основе лежит алгоритм, который показывает задание посетителю, а потом считывает отправленный ответ.

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

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

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

Может ли робот обойти капчу

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

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

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

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

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

А еще у капчи бывают уязвимости: например, ответ, который расположен прямо в названии картинки на странице. Робот может заметить его и ввести. Такая капча, по сути, нефункциональна.

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

Как защитить капчу от роботов

Есть несколько способов: пользоваться более мощными алгоритмами или применять альтернативные виды защиты от спамеров и атак.

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

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

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

Преимущества капчи

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

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

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

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

Недостатки капчи

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

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

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

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

Чем можно заменить капчу

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

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

Как установить капчу на сайт

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

На что обратить внимание при установке капчи

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

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

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

(рейтинг: 5, голосов: 2)
Добавить комментарий