CAPTCHA — сокращение от Completely Automated Public Turing test to tell Computers and Humans Apart. Цель проста — определить, является ли пользователь сайта реальным человеком или автоматическим ботом. Раньше CAPTCHA представляла собой ввод искаженного текста с картинки, но современные решения намного умнее и почти невидимы для пользователя. CAPTCHA защищает формы входа от брутфорса, формы регистрации от ботовых регистраций и формы связи от спама.
Google reCAPTCHA v2 и v3
Google reCAPTCHA — самое распространенное решение. Версия v2 показывает знакомую кнопку "I'm not a robot" и в подозрительных случаях дает задачи типа выбора светофоров или автобусов на картинках. Версия v3 вообще невидима — она анализирует движения пользователя по сайту и возвращает оценку от 0 до 1. Разработчик действует в зависимости от оценки — если низкая, запрашивает дополнительное подтверждение. v3 особенно удобен для e-commerce сайтов потому что не отвлекает пользователя.
hCaptcha — privacy-friendly альтернатива
hCaptcha — альтернатива Google reCAPTCHA, которая больше уважает приватность пользователей. Официально используется Cloudflare и хороший выбор для тех, у кого есть опасения по поводу сбора данных Google. hCaptcha просит пользователей выбирать объекты на картинках, но эти ответы используются для обучения моделей машинного обучения и владелец сайта может получать оплату за это. Установка почти такая же как у reCAPTCHA и переход с Google легкий.
Cloudflare Turnstile
Cloudflare Turnstile — CAPTCHA нового поколения, которая вообще не требует действий от пользователя. В фоне анализирует характеристики браузера, поведенческие сигналы и другие признаки и автоматически определяет, что это человек. Turnstile полностью бесплатен и может использоваться на любом сайте с аккаунтом Cloudflare. Для пользователя это лучший опыт — никаких картинок выбирать не нужно, страница просто загружается и форма готова к использованию.
Техника установки CAPTCHA
Процесс установки CAPTCHA обычно состоит из двух шагов. Во-первых, владелец сайта получает от провайдера сервиса ключ сайта и секретный ключ — они связывают CAPTCHA с сайтом. Во-вторых, владелец добавляет в форму специальный JavaScript скрипт и элемент, а на стороне сервера с помощью секретного ключа подтверждает ответ CAPTCHA у провайдера. Если подтверждение успешно, форма принимается, иначе возвращается ошибка. Интеграция frontend и backend важна — полагаться только на frontend проверку опасно, потому что её можно обойти.
Практика Sayt.uz
Sayt.uz предлагает клиентам готовые решения для установки CAPTCHA. В каждую форму конструктора сайтов по умолчанию добавлен Cloudflare Turnstile, и он полностью бесплатен. Клиенты при желании могут заменить его на Google reCAPTCHA или hCaptcha — достаточно ввести ключи в настройках. В кабинете есть статистика, показывающая сколько бот-попыток в день остановлено CAPTCHA. На формах связи, регистрации и восстановления пароля CAPTCHA включен обязательно.