Что такое капча простыми словами, капча при регистрации, зачем она нужна, плюсы и минусы

Капча — как Великая Китайская стена: обойти сложно, лезть не хочется. Зачем она вообще нужна на сайте, можно ли обойтись без нее и как сделать ввод капчи максимально удобным для пользователя?

Капча: что это такое

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

Какие бывают капчи

Ввод капчи можно разделить на несколько способов.

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

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

  3. Выбор нужных картинок. Например, тех, на которых изображены светофоры или гидранты. На первый взгляд, это более простой вариант, но и он требует внимательности: не заметишь картинку с небольшим фрагментом гидранта, и начинай сначала.
  4. На картинках с правильными изображениями нужно поставить галочки

  5. Решение математической задачи. Понятное дело, извлекать корни и решать уравнения никто не заставит, обычно это простейшее действие.
  6. Пример простой математической капчи

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

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

Достаточно просто быстро поставить галочку

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

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

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

  1. Защита от спама. Боты могут рассылать рекламу, оставлять спам-комментарии и отзывы. Если у вас крупный сайт и не хочется вычищать все это вручную, поможет капча.
  2. Защита от DDoS-атак — когда на сайт одновременно направляется множество запросов, которые сервер физически не может обработать, и сайт рухнет. Капча может сдержать этот поток.
  3. Но, конечно, если атака серьезная, никакая капча не поможет, нужны другие способы защиты

  4. Защита от брутфорсинга, или подбора логинов и паролей. Человеку рано или поздно надоест подбирать логины и пароли, чтобы взломать сайт. А робот может делать это бесконечно и рано или поздно сгенерировать подходящие, если его вовремя не остановить с помощью капчи.
  5. Защита от перехвата товаров в интернет-магазинах. Такое часто практикуется в период распродаж и акций на сайте: боты имитируют действия пользователей, «скупают» все товары, перехватывая их у реальных пользователей.
  6. Защита от парсинга данных. По опыту скажем, что в этом случае капча не всегда хорошо работает — появились хорошие сервисы парсинга. Для сайта критического вреда от парсинга нет, но вот конкуренты получат важную и не предназначенную для их глаз информацию.

Читайте также: Анализ сайтов конкурентов — ТОП-6 лучших сервисов в 2021 году

Когда показывается капча

  1. При регистрации на сайте. Пользователю предлагается заполнить необходимые поля и ввести капчу.
  2. Когда нужно совершить на сайте действие: оставить комментарий, написать сообщение.
  3. По ситуации. Такое часто бывает во «ВКонтакте»: сидишь, листаешь ленту, и внезапно появляется капча. Это только на первый взгляд внезапно, на самом деле так система реагирует на подозрительную активность. Например, вы слишком быстро отвечаете на сообщения или часто лайкаете. Ввод капчи поможет удостовериться, что вы не бот.
  4. Постоянно. Это самый негативный сценарий, когда капча мешает просматривать сайт и совершать действия. Он запускается, если система защиты сайта «решила», что вы пытаетесь взломать его или подобрать логин и пароль. В этом случае капча будет показываться каждый раз, когда вы заходите на сайт, вводите логин и пароль или пытаетесь совершить какое-либо действие.

Минусы капчи

  1. Это неудобно для пользователя. Неудобно, когда приходится вглядываться в неразборчивый набор букв и цифр, а при ошибке начинать сначала. Неудобно, что ошибиться проще простого: сложно отличить букву «О» от цифры «0». Неудобно, что капча не может запомнить, что я не робот, и появляется снова и снова.
  2. Да не робот я, не робот!!!

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

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

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

Читайте также: 30 способов увеличить конверсию сайта

Проверка CAPTCHA / Хабр

В этой статье я расскажу о нескольких способах проверки поля CAPTCHA в html формах.

Думаю, объяснять, что такое CAPTCHA, смысла не имеет, поэтому сразу перейдем к ее использованию.

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

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

Какой бы из этих способов вы не выбрали, принцип работы с CAPTCHA остается неизменным.


При создании формы с CAPTCHA вы должны сохранить правильный ответ, а после получения данных формы проверить ответ посетителя.

Более наглядно этот процесс показан на рисунке.

Наибольший интерес здесь представляют две операции:
1. сохранение данных CAPTCHA;
2. проверка полученного от посетителя значения.

Существуют три основных способа сохранения данных CAPTCHA.
1. с помощью скрытых полей формы;
2. с помощью сессий;
3. с помощью базы данных.

Примечание. Под данными CAPTCHA я подразумеваю: правильный ответ, путь к изображению (если оно используется), идентификатор посетителя (если нужен).

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

Главное преимущество такого метода – простота реализации. Нужно просто сравнить значения двух полей формы (скрытого и заполненного посетителем).
Сохранение данных в сессии предоставляет более высокий уровень безопасности.

Правильные ответы хранятся на сервере и недоступны посетителям. Кроме того, в этом случае легко ограничить «срок жизни» CAPTCHA, просто задав «срок жизни» сессии.

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

Что произойдет с этими файлами если сессия будет просрочена? Ответ – ничего. Они будут скапливаться, и занимать место. Т.е. нужен скрипт, периодически удаляющий устаревшие файлы.

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

Главный недостаток по сравнению с сессиями – необходимость отличать одного посетителя от другого. Для этого можно использовать его IP адрес (или комбинацию IP адреса и данных браузера (например, использовать заголовок User-Agent)).

Таким образом, для хранения данных CAPTCHA можно использовать таблицу с такими полями:

captcha_id – первичный ключ;
captcha_time – время создания CAPTCHA;
ip_address – адрес посетителя;
captcha_text – текст, написанный на рисунке;
pic_name – имя рисунка.

В этом случае для получения данных CAPTCHA можно использовать запрос следующего вида:

SELECT COUNT(*) AS count FROM captcha WHERE word = $userValue AND ip_address = $userIP AND captcha_time > $expTime

Преимущество по сравнению с сессиями – не нужны скрипты удаления рисунков (достаточно простого SQL запроса).

Полный пример реализации такой CAPTCHA на php приведен в статье: «Добавляем CAPTCHA к форме».
Также можно посмотреть live demo.

Справка по reCAPTCHA

О reCAPTCHA

  1. Что такое reCAPTCHA?

Использование reCAPTCHA V2

  1. Как использовать reCAPTCHA?
  2. Специальные возможности
  3. Эта CAPTCHA слишком сложная
  4. Мой компьютер отправляет автоматические запросы

Помощь пользователям reCAPTCHA

  1. Требования браузера для reCAPTCHA
  2. Не видите флажок и хотите более простую задачу?

Помощь владельцам сайтов

  1. Как я могу интегрировать reCAPTCHA на свой сайт?
  2. Часто задаваемые вопросы

О reCAPTCHA

  1. Что такое reCAPTCHA?

    reCAPTCHA — это бесплатная служба Google, которая помогает защитить веб-сайты от спама и злоупотреблений. «CAPTCHA» — это тест Тьюринга, позволяющий отличить человека от бота. Людям легко решить эту проблему, но трудно понять «ботам» и другим вредоносным программам. Добавив reCAPTCHA на сайт, вы можете заблокировать автоматизированное программное обеспечение, облегчая вход своим приветствуемым пользователям. Попробуйте на странице https://www.google.com/recaptcha/api2/demo.


    Чтобы узнать больше о reCAPTCHA, посетите наш официальный веб-сайт или наш сайт технической документации.

Использование reCAPTCHA V2

  1. Как использовать reCAPTCHA?

    Просто установите флажок:

    Если вы видите зеленую галочку, поздравляем! Вы прошли наш тест робота (да, это так просто). Вы можете продолжать то, что вы делали.

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

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

  2. Специальные возможности

    reCAPTCHA работает с основными программами чтения с экрана, такими как ChromeVox (Chrome OS), JAWS (IE/Edge/Chrome на Windows), NVDA (IE/Edge/Chrome на Windows) и VoiceOver (Safari/Chrome на Mac ОПЕРАЦИОННЫЕ СИСТЕМЫ). reCAPTCHA предупредит программы чтения с экрана об изменениях статуса, например о завершении проверки reCAPTCHA. Статус также можно найти, найдя заголовок «статус recaptcha» в разделе «виджет recaptcha» на странице. Дополнительные сведения см. в разделе Сообщения о статусе reCAPTCHA ARIA.

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

    1. Если у вас возникла проблема со зрением, найдите и нажмите кнопку.

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

    3. Нажмите PLAY и введите цифры, которые вы услышите, в поле ввода текста, расположенное после кнопки PLAY или элемента управления звуком. Если ваш фокус не устанавливается автоматически на поле ввода текста после нажатия кнопки PLAY, нажмите Tab, чтобы перейти к нему. Когда вы закончите вводить цифры из аудио, нажмите ENTER или нажмите кнопку «Подтвердить», чтобы отправить свой ответ.

    4. Если ваш ответ неверен, вам будет предложено другое звуковое испытание.

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

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

    ​Наконечники
    • Если звук не воспроизводится, попробуйте загрузить его, найдя ссылку и нажав на нее.

    • Находясь в поле ввода текста, вы можете нажать кнопку «R», чтобы воспроизвести звук с самого начала

    • Чтобы получить другое звуковое задание, найдите и нажмите кнопку.

    • Срок действия проверки reCAPTCHA истекает через определенное время, поэтому лучше завершить проверку reCAPTCHA последней на посещаемом веб-сайте.

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

    Сообщения о статусе reCAPTCHA ARIA

    Сообщение о состоянии

    Подробное описание

    Рекапча требует проверки

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

    Вызов проверки открытия

    Флажок нажат, и задание загружается. Вы мгновенно верифицированы, если статус изменится на «Вы верифицированы». В противном случае вам необходимо пройти проверку.

    Срок действия запроса на проверку истек, установите флажок еще раз для нового запроса

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

    Вы подтверждены

    Вы прошли проверку. Теперь вы можете продолжить работу на сайте.

    Срок действия подтверждения истек, установите флажок еще раз для нового вызова

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

  3. Эта CAPTCHA слишком сложная

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

  4. Мой компьютер отправляет автоматические запросы

    На нашей необычной странице справки о дорожном движении описано, что делать, если вы видите это сообщение:

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

Справка для пользователей reCAPTCHA

  1. Требования к браузеру для reCAPTCHA

    Мы поддерживаем две самые последние основные версии:

    • рабочий стол (Windows, Linux, Mac)
      • Хром
      • Фаерфокс
      • Сафари
      • Хромированная кромка
      • IE до 2022 г. 15 июня
    • мобильный
      • Хром
      • Сафари
      • Родной браузер Android
  2. Не видите флажок и хотите более легкую задачу?

    Если вы видите эту задачу reCAPTCHA, значит, среда вашего браузера не поддерживает виджет-флажок reCAPTCHA.

    Есть несколько шагов, которые вы можете предпринять, чтобы улучшить свой опыт:

    • Убедитесь, что ваш браузер полностью обновлен (см. минимальные требования к браузеру)
    • Убедитесь, что в вашем браузере включен JavaScript
    • Попробуйте отключить плагины, которые могут конфликтовать с reCAPTCHA

    Обратите внимание, что некоторые сайты могут быть неправильно интегрированы с reCAPTCHA – в этом случае обратитесь к веб-мастеру сайта.

Помощь владельцам веб-сайтов

  1. Как мне интегрировать reCAPTCHA на свой сайт?

    Использовать reCAPTCHA на вашем сайте очень просто. Сначала зарегистрируйте свой сайт здесь, а затем следуйте кратким инструкциям на экране.

  2. Часто задаваемые вопросы

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

Как протестировать Invisible reCAPTCHA

Проверка обычных CAPTCHA

Тестировать обычные CAPTCHA, такие как reCAPTCHA, легко.

  • Вы решаете CAPTCHA и отправляете форму.
  • Затем вы отправляете форму, не решая CAPTCHA.

Но он невидим!

Как вы тестируете Invisible reCAPTCHA? Невидимая reCatpcha ничего не показывает, если думает, что вы человек. ваша форма просто отправляет нормально.

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

Но как проверить случай с роботом? Как будет работать ваша форма, если ее использует сомнительный человек?

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

Иногда это работает…

Очевидный способ — создать инкогнито или приватное окно в браузере и перейти к своей форме. Иногда это работает, но иногда этого недостаточно, и Invisible reCAPTCHA по-прежнему считает вас человеком.

Ответ!

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

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

Однако у вас есть один вариант — создать собственное устройство и указать другой пользовательский агент. Это ключ получить Invisible reCAPTCHA, чтобы бросить вызов вашей человечности.

Следуй этим шагам:

  1. Перейти к форме
  2. Щелкните правой кнопкой мыши и выберите «Проверить».
  3. Найдите кнопку «Переключить панель инструментов устройства» и нажмите ее.
  4. Chrome открывает панель инструментов устройства над окном вашего контента (и изменяет размер вашего контента, чтобы он соответствовал последнему выбранное устройство):
  5. Нажмите показанную кнопку раскрывающегося списка и выберите «Изменить»:
  6. Теперь нажмите «Добавить пользовательское устройство», введите имя (например, «Робот») и установите для строки пользовательского агента значение «BadUserAgent-Bot», как показано ниже.
  7. Нажмите «Сохранить». Теперь всякий раз, когда вы выбираете это пользовательское устройство, Invisible reCAPTCHA будет относятся к вам с подозрением и просят решить головоломки CAPTCHA перед отправкой формы. Обратите внимание, что у вас должно быть открыто окно разработчика Chrome (щелкните правой кнопкой мыши и выберите «Проверить») для это пользовательское устройство для выбора.