// DevOps

Современные CAPTCHA-сервисы: reCAPTCHA, Turnstile, hCaptcha и SmartCaptcha — как они работают и что выбрать

Опубликовано 31.03.2026

Современная капча давно перестала быть просто «упражнением по распознаванию кривых букв». Сегодня это полноценный антибот-механизм, который анализирует не только явное действие пользователя, но и контекст запроса: поведение в браузере, частоту и характер взаимодействия, сетевые признаки, а в некоторых случаях — дополнительные сигналы окружения устройства. У Cloudflare Turnstile, например, отдельно документированы Ephemeral IDs — краткоживущие идентификаторы для усиления антифрод-анализа без классических cookie, а Google reCAPTCHA Enterprise позиционируется уже не как «виджет с картинками», а как часть системы защиты от скрейпинга, credential stuffing, фейковых регистраций и другого злоупотребления.

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

Google reCAPTCHA (v2 / v3 / Enterprise)

Google reCAPTCHA остается одним из самых известных решений на рынке. У сервиса есть несколько режимов интеграции: v2 с чекбоксом, invisible reCAPTCHA, v3 со score-моделью и Enterprise-ветка, связанная с Google Cloud. При этом важно понимать, что сегодня граница между «простой капчей» и полноценным risk assessment у Google довольно размыта: даже официальный Google советует интерпретировать score и строить свою серверную логику вокруг него, а не полагаться только на сам факт прохождения виджета.

  • reCAPTCHA v2 («I’m not a robot») Классический вариант с чекбоксом. Если проверка не уверена в пользователе, может быть показан дополнительный challenge. У Google также есть invisible reCAPTCHA, которая относится к v2-семейству и может вызываться без явного чекбокса.

  • reCAPTCHA v3 Полностью невидимый режим. Вместо «разгадай картинки» он возвращает score, который вы интерпретируете на своей стороне. Google отдельно подчеркивает, что токен v3 нужно запрашивать в момент действия пользователя, а не при загрузке страницы, потому что токен живет всего 2 минуты.

  • reCAPTCHA Enterprise Это уже решение класса anti-abuse / fraud detection, а не просто виджет. В официальных материалах Google Enterprise прямо позиционируется как инструмент против scraping, credential stuffing, account takeover, fake accounts и платежного фрода. Для сайтов backend обычно создает assessment и уже по результатам оценки принимает решение — пропускать запрос, требовать дополнительную проверку или блокировать.

С практической точки зрения у reCAPTCHA есть два постоянных минуса. Первый — приватность: сервис тесно связан с инфраструктурой Google, и часть команд принципиально не хочет тащить такой dependency на публичные формы. Второй — доступность по регионам и сетям: если Google-сервисы у ваших пользователей открываются медленно или нестабильно, капча будет деградировать вместе с ними. При этом Google официально заявляет о GDPR-compliance для Cloud-версии reCAPTCHA, так что вопрос тут не столько в «законно или незаконно», сколько в архитектурном выборе и модели доверия.

Cloudflare Turnstile

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

У Turnstile есть несколько режимов работы:

  • Non-interactive — пользователь вообще ничего не нажимает.
  • Managed — при подозрении может появиться интерактивная проверка.
  • Invisible — полностью скрытый режим.

По состоянию на март 2026 года у Turnstile есть бесплатный план и Enterprise-план. Бесплатный вариант официально подходит не только для тестов и личных сайтов, но и для большинства production-приложений; Enterprise нужен уже для высоких объемов, сложного host management, расширенного bot detection и compliance-сценариев. Поэтому корректнее говорить не «сервис полностью бесплатный навсегда без оговорок», а «есть очень щедрый free tier и отдельный enterprise-уровень».

С точки зрения приватности у Cloudflare сильный маркетинговый тезис: Turnstile не собирает данные для ad retargeting. Дополнительно у сервиса есть Ephemeral IDs — краткоживущие, привязанные к аккаунту идентификаторы, которые помогают ловить abuse-паттерны без классического cross-site tracking. Это не означает «никаких данных не собирается вообще», но означает, что архитектура заметно менее токсична для privacy-дискуссий, чем у классического Google-подхода.

Отдельный плюс — доступность. Cloudflare официально заявляет соответствие Turnstile требованиям WCAG 2.2 AAA, что для публичных форм и B2C-сервисов уже не приятный бонус, а вполне рабочий критерий выбора.

hCaptcha

hCaptcha — еще один крупный альтернативный игрок, который делает сильный упор на privacy-first подход и enterprise anti-abuse. В базовом сценарии он очень похож на классическую CAPTCHA-интеграцию: виджет на фронте, токен на сервер, серверная валидация. Но у enterprise-уровня доступны пассивные режимы без явного challenge, risk scores, кастомные threat models, расширенная аналитика и дополнительные API. То есть hCaptcha — это не только «картинки вместо Google», но и полноценная платформа защиты от злоупотреблений.

У hCaptcha действительно есть модель монетизации, при которой владельцы сайтов могут получать выплаты за участие в экосистеме разметки и challenge traffic. Но это не стоит подавать как главную причину выбора. На практике hCaptcha чаще выбирают не ради потенциального дохода, а ради замены Google, региональной доступности и более гибкой privacy-позиции.

С точки зрения доступности hCaptcha делает акцент не только на аудио-подходах, но и на альтернативных вариантах accessibility, включая universal accessibility flows и текстовые challenge-сценарии. Это важный нюанс: в 2026 году просто наличие «аудио-капчи» уже нельзя считать достаточным признаком хорошей доступности.

Yandex SmartCaptcha

Yandex SmartCaptcha — сильный кандидат для RU-сегмента и вообще для сценариев, где критичны локализация данных, хорошая доступность из РФ и интеграция с инфраструктурой Yandex Cloud. Официальная документация Yandex описывает несколько режимов: invisible captcha, промежуточные проверки вроде чекбокса или слайдера и более сложные задания для подозрительных запросов. На сервисной странице отдельно перечислены типы заданий, включая text recognition, slider, silhouettes и kaleidoscope.

Важно не путать две вещи. Первая: SmartCaptcha действительно удобна для российских проектов, потому что живет в экосистеме Yandex Cloud. Вторая: формулировка «сама SmartCaptcha автоматически делает ваш проект соответствующим ФЗ-152» слишком грубая. Корректнее писать так: Yandex Cloud в целом заявляет соответствие требованиям 152-ФЗ и предоставляет инфраструктуру для локализации и обработки персональных данных в России, что делает SmartCaptcha естественным выбором для таких сценариев. Но юридическая ответственность и полная compliance-модель все равно остаются на стороне владельца системы.

По UX у SmartCaptcha сильная сторона — ориентация на минимальное трение. На сервисной странице Yandex прямо пишет, что во многих случаях пользователю достаточно просто нажать «I’m not a robot», а сложное задание показывается только при подозрении на бота.


2. Как на самом деле устроена интеграция

Любая современная CAPTCHA работает по двухэтапной схеме. Если вы реализовали только frontend-виджет и не сделали server-side validation, защиты у вас фактически нет. Это особенно жестко сформулировано в документации Cloudflare Turnstile: без вызова Siteverify конфигурация считается неполной, а клиентский виджет сам по себе не обеспечивает защиту. Аналогичная логика действует и у Google reCAPTCHA, hCaptcha и Yandex SmartCaptcha.

Этап 1: клиентская часть

На фронтенде вы подключаете JS-библиотеку сервиса и рендерите виджет или invisible-механику. После успешной проверки сервис помещает токен в скрытое поле формы или возвращает его через callback. Например:

  • g-recaptcha-response у Google reCAPTCHA.
  • cf-turnstile-response у Cloudflare Turnstile.
  • h-captcha-response у hCaptcha.
  • smart-token у Yandex SmartCaptcha.

Дальше этот токен нужно отправить на ваш backend вместе с полезной нагрузкой формы: логином, паролем, сообщением обратной связи, данными заказа и так далее.

Этап 2: серверная проверка

Это главный этап. Ваш backend должен отправить токен на сервер CAPTCHA-провайдера и убедиться, что токен:

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

Ниже — типичные endpoint’ы проверки.

Google reCAPTCHA

curl -X POST https://www.google.com/recaptcha/api/siteverify \
  -d "secret=<secret_key>" \
  -d "response=<token>" \
  -d "remoteip=<user_ip>"

reCAPTCHA возвращает JSON с полем success, а для v3 и Enterprise-подобных сценариев важны еще score и контекст оценки. Токен живет 2 минуты и может быть проверен только один раз.

Cloudflare Turnstile

curl -X POST https://challenges.cloudflare.com/turnstile/v0/siteverify \
  -d "secret=<secret_key>" \
  -d "response=<token>" \
  -d "remoteip=<user_ip>"

У Turnstile серверная проверка обязательна. Токен истекает через 5 минут и является одноразовым.

hCaptcha

curl -X POST https://api.hcaptcha.com/siteverify \
  -d "secret=<secret_key>" \
  -d "response=<token>" \
  -d "remoteip=<user_ip>"

У hCaptcha токен по умолчанию тоже живет 120 секунд, а повторное использование возвращает отдельную ошибку already-seen-response.

Yandex SmartCaptcha

curl -X POST https://smartcaptcha.cloud.yandex.ru/validate \
  -d "secret=<server_key>" \
  -d "token=<token_from_form>" \
  -d "ip=<user_ip>"

Yandex указывает, что токен SmartCaptcha валиден 5 минут и может быть использован только один раз. В ответе вы получите JSON со status, и обрабатывать форму дальше можно только при статусе ok.


3. Что именно проверять на бэкенде

Самая частая ошибка интеграции — разработчик проверил, что поле с токеном не пустое, и на этом успокоился. Это не защита. Правильная последовательность такая:

  1. Принять токен с фронтенда.
  2. Отправить его в API провайдера.
  3. Проверить успех валидации.
  4. Убедиться, что токен не просрочен и не reuse.
  5. Для score-based решений — интерпретировать score на своей стороне.
  6. Только после этого обрабатывать исходный запрос.

Для reCAPTCHA v3 и enterprise-сценариев особенно важно не превращать score в магическое число. Порог зависит от контекста. Для формы комментариев можно пустить и более рискованный трафик, а для логина, восстановления пароля, регистрации или оплаты пороги и ответные действия должны быть строже. Google прямо пишет, что score нужно интерпретировать исходя из особенностей вашего сайта и вашего трафика.


4. Важные технические нюансы, о которых забывают

Токен нельзя просто «прокинуть»

Все крупные провайдеры делают токены короткоживущими и одноразовыми. У Google и hCaptcha типовой срок — 2 минуты. У Turnstile и SmartCaptcha — 5 минут. Повторная валидация того же токена либо не пройдет, либо вернет ошибку reuse/expired. Это сделано именно для защиты от replay-атак.

Таймауты на запрос к CAPTCHA API обязательны

Если внешний CAPTCHA API недоступен из вашего дата-центра, подвисший backend легко превращается в DoS против самого себя. Поэтому на исходящий запрос в сервис CAPTCHA нужно ставить короткий timeout. В документации Yandex прямо есть пример с CURLOPT_TIMEOUT, а в реальной практике 1–3 секунды — вполне рабочий диапазон для публичных форм. Что делать при ошибке — зависит от типа операции:

  • fail close — отклонить запрос, если CAPTCHA API недоступен;
  • fail open — пропустить запрос, но с дополнительными ограничениями;
  • soft fail — запросить повтор формы, альтернативную проверку или второй фактор.

Для логина, регистрации, password reset, checkout и API write-операций обычно лучше fail close или soft fail. Для подписки на блог или второстепенной формы иногда допустим fail open с rate limit и логированием.

CAPTCHA — это не антибот-система целиком

Любая CAPTCHA — только один слой защиты. И Google, и Cloudflare, и hCaptcha, и Yandex работают лучше всего в связке с другими мерами:

  • rate limiting;
  • IP / ASN reputation;
  • device / session anomalies;
  • поведенческие сигналы;
  • ограничения по скорости регистрации, логина, отправки форм;
  • WAF и антифрод-правила;
  • отдельные правила для анонимных сетей, прокси и датацентров.

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

Accessibility — это уже часть безопасности

Плохая CAPTCHA не только режет конверсию, но и ломает доступность. Cloudflare заявляет WCAG 2.2 AAA для Turnstile. hCaptcha отдельно развивает universal accessibility-потоки и текстовые challenge-сценарии. Yandex SmartCaptcha выделяет accessibility как самостоятельный аспект продукта. На этом фоне «старые» визуальные капчи со странными символами выглядят уже просто техническим долгом.

CSP может сломать интеграцию

Если у вас строгий Content-Security-Policy, виджет может не загрузиться вообще. Для Turnstile Cloudflare официально рекомендует либо nonce-based CSP, либо явное добавление домена в script-src и frame-src. У Yandex SmartCaptcha JS подключается с домена smartcaptcha.cloud.yandex.ru, и это тоже нужно учитывать в политике загрузки скриптов.

Например, для Turnstile типовая настройка будет выглядеть так:

Content-Security-Policy:
  script-src 'self' https://challenges.cloudflare.com;
  frame-src https://challenges.cloudflare.com;

А для SmartCaptcha нужно предусмотреть разрешение загрузки скрипта и связанных ресурсов с доменов Yandex Cloud, используемых виджетом.

Тестовые ключи и staging-среда

Еще одна типовая ошибка — использовать продовые ключи в автотестах. У Google для v2 есть официальные test keys, а Cloudflare Turnstile отдельно документирует dummy sitekeys и secret keys для тестирования. Для v3 Google рекомендует создавать отдельный ключ для тестовой среды, потому что score без реального трафика все равно будет нерепрезентативен.


5. Практические рекомендации по выбору

Когда брать Cloudflare Turnstile

Turnstile — очень сильный дефолтный выбор для большинства современных веб-проектов. Он прост в интеграции, не требует Cloudflare CDN, хорошо работает без явных челленджей, имеет сильную accessibility-позицию и удобен там, где вы не хотите тащить зависимость от Google. Для маркетинговых сайтов, SaaS, кабинетов, форм логина, обратной связи и регистрации это сейчас один из самых прагматичных вариантов.

Когда брать Google reCAPTCHA

reCAPTCHA имеет смысл, если вы уже глубоко в экосистеме Google Cloud, вам нужен зрелый enterprise-уровень защиты, или вы строите более сложную антифрод-логику вокруг assessment и risk scoring. Но в публичных формах и глобальных B2C-сценариях все чаще побеждают альтернативы — просто из-за UX, privacy-опасений и региональной доступности.

Когда брать hCaptcha

hCaptcha логичен там, где нужен privacy-first подход, замена Google без потери серьезного anti-abuse-потенциала и более богатые enterprise-возможности вроде пассивных режимов и кастомных threat models. Дополнительная монетизация существует, но для продакшена ее лучше воспринимать как вторичный фактор.

Когда брать Yandex SmartCaptcha

SmartCaptcha — разумный выбор для проектов с аудиторией в РФ и СНГ, а также для систем, где важны локальная доступность, русскоязычная экосистема и требования к локализации данных. Особенно хорошо она смотрится в связке с остальными сервисами Yandex Cloud. Но, как и любая другая CAPTCHA, сама по себе она не закрывает весь класс атак и не заменяет rate limiting, WAF и серверную антифрод-логику.


6. Сводная таблица

СервисНагрузка на пользователяПриватность / data postureСложность внедренияЧто важно знать
reCAPTCHA v2Низкая / средняяНиже, чем у privacy-first альтернативСредняяКлассический чекбокс и challenge
reCAPTCHA v3Почти нулеваяНиже, чем у privacy-first альтернативСредняяНужно самим интерпретировать score
reCAPTCHA EnterpriseПочти нулевая / адаптивнаяЗависит от вашей модели доверия к Google CloudВыше среднейНе просто CAPTCHA, а risk assessment
Cloudflare TurnstileОчень низкаяСильная privacy-позицияЛегкаяServer-side validation обязательна
hCaptchaНизкая / средняяСильная privacy-позицияСредняяЕсть passive/risk-score сценарии на enterprise
Yandex SmartCaptchaНизкаяУдобна для локализации и Yandex CloudСредняяХорошо подходит для RU-сегмента

7. Минимальный production-чеклист

Перед тем как считать CAPTCHA «внедренной», проверьте:

  • токен валидируется только на сервере;
  • секретный ключ нигде не светится во frontend-коде;
  • на запрос к CAPTCHA API стоит timeout;
  • повторное использование токена не допускается;
  • ошибки валидации логируются;
  • есть отдельная логика на случай деградации внешнего CAPTCHA API;
  • порог score для невидимых решений подобран на реальном трафике;
  • CSP настроен и не ломает загрузку виджета;
  • CAPTCHA дополняется rate limiting и базовой антифрод-логикой.

Итог

Если выбирать практично, без религиозных войн и лишней теории, то для большинства современных веб-приложений Cloudflare Turnstile сейчас выглядит самым универсальным вариантом: быстрый, малозаметный для пользователя, формально хорошо проработанный по accessibility и не привязанный к Google-экосистеме.

Если критичны локализация данных, доступность из РФ и интеграция с Yandex Cloud, то Yandex SmartCaptcha — очень сильный кандидат. Просто не стоит продавать ее как «автоматическую гарантию соответствия 152-ФЗ»: корректнее говорить, что она хорошо ложится в инфраструктуру, которая строится с учетом этих требований.

Если нужна более развитая enterprise-антифрод-модель с risk scoring и тесной связкой с экосистемой Google, смотрите в сторону reCAPTCHA Enterprise. Если хотите privacy-first альтернативу с сильным enterprise-уровнем без Google — в сторону hCaptcha.

И главное: CAPTCHA — это не «серебряная пуля». Она должна быть частью более широкой модели защиты, а не единственным барьером между вашим API и бот-фермой.

// Reviews

Отзывы по теме

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

Было несколько проблем касаясь как технической части так и понимания в целом. Михаил быстро ответил на запрос, помог разобраться и решил проблеммы технические и помог разобраться в понимании, за что отдельное спасибо. …

abazawolf

Настройка vps, настройка сервера

18.02.2026 · ★ 5/5

// Contact

Нужна помощь?

Свяжись со мной и я помогу решить проблему