Капча нужна, чтобы определить, кто пытается совершить операцию — человек или робот. Без ее прохождения нельзя выполнить то или иное действие: войти на сайт, авторизоваться, оставить комментарий. Задание обычно довольно простое для человека и практически невыполнимое для робота.
Зачем вообще отсеивать ботов? Есть несколько причин:
злоумышленники. Боты могут использоваться для разных видов атак на сайты. В первую очередь это DDoS-атаки — автоматизированные массовые запросы, которые перегружают сервер. Еще есть брутфорс — подбор логина и пароля с помощью робота, пробующего разные варианты практически бесконечно; спам. Частый вариант использования бота — отправка «мусорных» рекламных сообщений, которые мешают полезному контенту; махинации. Например, интернет-магазины иногда проводят ограниченные по времени акции вида «Успей купить», и роботы могут мониторить такие предложения, скупая весь акционный товар за несколько секунд. Есть и роботы, которые не наносят вреда, например поисковые. От них защищаться капчей не нужно — потенциально опасных действий они не совершают.
Кто пользуется капчей Капчу устанавливают владельцы сайтов или специалисты, которые занимаются их обслуживанием. Нужна она или нет — зависит от целей и задач ресурса, а еще от возможностей его владельцев.
Например:
капчу устанавливают для публикации комментариев на ресурсах, где живо общаются пользователи; капча может появляться при авторизации или попытке купить товар, чтобы убедиться, что пользователя не взломали; некоторые сервисы предлагают ввести капчу, если активность пользователя кажется им подозрительной. Иногда они срабатывают по ошибке, например из-за VPN или опечатки при вводе пароля. Коммерческие сайты могут устанавливать капчу, чтобы защититься от парсинга — считывания данных со страниц с помощью робота. Но это обычно бесполезно, к тому же парсинг редко наносит прямой вред — только косвенный, так как помогает конкурентам собрать информацию.
Как может выглядеть капча Распространенный вариант — картинка, на которой изображено сочетание из букв, слов или цифр. Чтобы пройти тест, нужно разобрать написанное и ввести результат в специальное поле. Но это не единственный тип. Кроме него, бывают:
простые вопросы, на которые может однозначно ответить человек, например, «Как звали Пушкина?»; математические примеры, которые нужно решить и ввести результат; мини-игры вида «Кликните на красную кнопку» или «Соберите пазл»; выбор правильных вариантов из списка — обычно это задания вида «Укажите все картинки со светофорами». Последний пример активно используется в популярном сервисе Google reCAPCHA. Он считается довольно надежным в сравнении с традиционными методами вроде сочетания букв.
Это не исчерпывающий список: вариантов капчи множество, а конкретное исполнение зависит только от фантазии ее создателей. Есть даже невидимая капча, которая делает выводы по деятельности пользователей, — ей пользуется Google.
Идея капчи: тест Тьюринга Разгадывание капчи — это задача, которую легко выполнить человеку и невозможно решить примитивному роботу. Идея возникла несколько десятков лет назад как реализация теста Тьюринга.
Алан Тьюринг придумал эмпирический тест, задача которого — определить, может ли существо мыслить. Классический тест устроен так: у человека есть два невидимых собеседника — машина и другой человек. Если тот не может правильно определить, который из них робот, значит, машина способна к мышлению.
Позже было создано намного больше вариаций теста. Капча — один из них, но проверкой в ней занимается не абстрактный человек, а алгоритм.
До последнего времени тест Тьюринга не могла пройти ни одна машина. Недавно это удалось искусственному интеллекту LaMDA от Google. А некоторые рисунки нейросетей GPT-3 и DALL-E 2 уже невозможно отличить от человеческих. Но это не значит, что они могут мыслить: уже доказано, что прохождение теста говорит не о наличии мышления, а об умении его имитировать.
Как устроена капча Капча — это примитивный тест Тьюринга, автоматизированный и публичный. В ее основе лежит алгоритм, который показывает задание посетителю, а потом считывает отправленный ответ.
Вопросы и задания реализованы по-разному. Иногда их придумывает сам человек — так чаще всего создают варианты с загадками, ответами на вопросы и математическими примерами. Но большинство задач капчи генерируются автоматически. Изображение создается на основе сгенерированного ответа, автоматически искажается, на него добавляются помехи — все это способен сделать компьютер.
Пока капча не пройдена, алгоритм не дает посетителю выполнить то или иное действие. Обычно он сообщает о неправильном ответе и снова дает пользователю задание. Когда оно выполнено, доступ открывается.
Некоторые современные варианты капчи — умные: они не включаются, если пользователь ведет себя естественно, и запускаются только при подозрительной активности. Например, посетитель отправляет слишком много сообщений, чересчур активно скачивает контент, зашел через VPN или анонимный режим.
Может ли робот обойти капчу Капча может быть «сильной» и «слабой». «Слабую» капчу легко пройти роботам, а «сильную» — почти невозможно. Впрочем, у нее часто есть другой недостаток: ее становится тяжело пройти людям.
Распознавание. Технологии развиваются, и современные роботы запросто пройдут легкую капчу — такую, где символы расположены на контрастном фоне и не слишком искажены. Поэтому используются всё более сложные алгоритмы и задания.
Есть даже специальные сервисы для распознавания капчи. Впрочем, мы не рекомендуем ими пользоваться: для нормальных пользователей это излишне. К тому же они обычно рассчитаны на конкретный «вид» капчи.
Иногда для распознавания капчи могут использовать нейросети и компьютерное зрение.
Другие способы. Если вопрос и ответ придумал человек, рано или поздно они могут появиться в базах данных роботов — и те смогут проходить капчу просто по сведениям из базы.
А еще у капчи бывают уязвимости: например, ответ, который расположен прямо в названии картинки на странице. Робот может заметить его и ввести. Такая капча, по сути, нефункциональна.
Есть и более сложные способы: например, вирусные боты, которые перенаправляют капчу на живого пользователя, а потом читают, что он ввел. Пользователь может даже ничего не подозревать. Но такое встречается реже.
Как защитить капчу от роботов Есть несколько способов: пользоваться более мощными алгоритмами или применять альтернативные виды защиты от спамеров и атак.
Более мощные алгоритмы — это или стандартная текстовая капча с символами, которые сложно разобрать, или другой вид задания. Например, довольно эффективной считается reCAPTCHA с распознаванием определенного вида изображений — не все боты достаточно тренированы, чтобы их различать.
Использовать капчу, которая сильно искажает символы, тоже можно, но это неудобно для пользователей, особенно для тех, у кого плохое зрение или есть неврологические особенности.
Про альтернативные виды защиты, такие как специальные файерволы против атак, мы поговорим чуть ниже.
Преимущества капчи Это просто. Установить капчу на сайт — довольно быстро и несложно: в интернете десятки плагинов, которые предлагают разные виды заданий. При этом некоторые из них довольно трудно обойти роботам.
Это удобно. Обычно сервисы капчи интегрируются в CMS, и управлять ими владелец сайта может прямо из административной панели.
Это дешево. Некоторые такие расширения для сайтов — бесплатные, другие стоят недорого и точно обходятся дешевле иных мер защиты. К тому же разработчик всегда может создать собственный алгоритм: статьи о том, как они устроены, есть в сети в открытом доступе.
Это эффективно. Конечно, существуют продвинутые роботы, которые могут обходить даже сложную капчу, но от большинства простейших ботов она защитит. Особенно если выбрать вариант с хорошим уровнем защиты.
Недостатки капчи Неудобство для пользователя. Пользователей может раздражать капча, особенно если она появляется слишком часто. Для информационных сайтов это не так критично, а вот для коммерческих важно: человек может уйти и не сделать заказ, который почти оформил. В результате компания может потерять клиента. К тому же падают поведенческие факторы: люди не выполняют какие-то действия, потому что не хотят тратить время на капчу.
Проблемы с доступностью. Отдельная категория пользователей может иметь особенности здоровья, мешающие распознать капчу. Сюда можно отнести плохое зрение, различные неврологические нарушения и иные состояния. Если вы создаете ресурс с расчетом в том числе на таких пользователей, вам стоит подумать об альтернативных вариантах.
Влияние на скорость. Чтобы подгрузить страницу с капчей, нужно больше времени, чем без нее. Поэтому страницы, где есть проверка, могут загружаться медленнее, а скорость загрузки — критично важный параметр. Он влияет и на поведение пользователей, и на отношение со стороны поисковых систем.
Непрочность. Некоторые популярные в прошлом виды капчи, например phpBB или vBulletin, сейчас считаются уязвимыми и неспособными защитить от роботов. И даже для более современных алгоритмов находятся способы обхода; впрочем, их намного меньше.
Чем можно заменить капчу Некоторые считают, что капча как метод устарела: появляются более продуманные и продвинутые роботы. Действительно, сейчас в теории программа может преодолеть даже хорошо защищенные алгоритмы капчи. Но это не значит, что капча совсем бесполезна, — это все еще удобный и нетребовательный метод, который помогает отсечь большую часть ботов. Просто, если вы беспокоитесь о защите сайта, капчу следует комбинировать с другими методами:
файерволами — они не пропускают вредоносный или подозрительный трафик; спам-фильтрами — специальными расширениями, которые распознают и блокируют спам; более сложным входом в аккаунт — например, двухфакторной аутентификацией через одноразовые коды или номер телефона; фильтрами ботов — программами, которые отслеживают роботов по заранее заданным правилам; сервисами защиты от злоумышленников — они платные, но успешно отсеивают даже полноценные DDoS-атаки. Как установить капчу на сайт Обычно для капчи существуют специальные плагины, которые встраиваются в CMS. Их нужно скачать и установить в систему управления контентом сайта по инструкции. Затем понадобится настроить плагин, например установить режим его включения, определить страницы, на которых он будет работать. После этого стоит протестировать, нормально ли работает капча: если что-то не так, есть риск, что действия пользователей будет блокировать все время.
На что обратить внимание при установке капчи Старайтесь выбирать надежные алгоритмы, которые не были скомпрометированы, но при этом остаются более-менее понятными для пользователей. Например, reCAPTCHA с выбором картинок или простым кликом на кнопку, если трафик не подозрительный.
Помните, что роботы постоянно совершенствуются и капча не сможет защитить от всего. А если вы хотите создать свой уникальный алгоритм — можете разработать генератор капчи самостоятельно. Понадобится изучить основы программной работы с изображениями и принципы, которые помогают защитить капчу от распознавания роботом.
Если вы хотите узнать больше об интернет-технологиях, записывайтесь на наши курсы. Получите новую профессию в современной сфере, востребованную и увлекательную.
|