Определение простыми словами
reCAPTCHA — это «фейс-контроль» для форм. Когда посетитель жмёт кнопку отправки, скрипт проверяет: двигалась ли мышь, какой у браузера отпечаток, сидел ли пользователь раньше на других сайтах с Google. Если поведение похоже на бота, форма блокируется или предлагает выбрать картинки.
Сервис умеет работать в трёх режимах: видимый чекбокс «I’m not a robot» (v2), картинки-пазлы (v2 invisible), фоновый скоринг от 0 до 1 (v3). Конкуренты — hCaptcha, Cloudflare Turnstile, Yandex SmartCaptcha. Для усиления комбинируется с WAF и fail2ban.
Сравнение
| Версия | Принцип | UX | Когда брать |
|---|---|---|---|
| reCAPTCHA v2 | Чекбокс + пазл при подозрении | Заметна пользователю | Регистрация, восстановление пароля |
| reCAPTCHA v2 Invisible | Срабатывает при сабмите формы | Скрытая, картинки только подозрительным | Контактные формы, комментарии |
| reCAPTCHA v3 | Скоринг 0.0–1.0 без вмешательства | Невидима, нужно решение на бекенде | Чекаут, защита API |
| hCaptcha | Аналог v2, оплата за решения | Похожая | Замена reCAPTCHA в РФ-проектах |
Кейсы использования
- Форма логина WordPress — отсечь брутфорс перебором логина admin.
- Регистрация в SaaS — отфильтровать одноразовые e-mail и фейковые аккаунты.
- Комментарии на блоге — убрать ссылочный спам без премодерации.
- API публичной формы (заявка с лендинга) — v3 даёт скор, бекенд решает: пускать, требовать подтверждение или отклонить.
- Негативный сценарий: ставить reCAPTCHA на каждый клик внутри личного кабинета — пользователь сбежит, нагрузка на Google API вырастет, а реальной защиты от уже залогиненного бота нет.
Технические детали
# Проверка токена reCAPTCHA v3 на бекенде curl-запросом
curl -X POST https://www.google.com/recaptcha/api/siteverify
-d "secret=$RECAPTCHA_SECRET"
-d "response=$USER_TOKEN"
-d "remoteip=$CLIENT_IP"
# Пример ответа JSON:
# {
# "success": true,
# "score": 0.9,
# "action": "login",
# "hostname": "example.com"
# }
# Скор 0.7 — пользователь
# Загрузка скрипта на странице:
# <script src="https://www.google.com/recaptcha/api.js?render=SITE_KEY"></script>
🔥 Где это применяется
Частые вопросы
Работает ли reCAPTCHA в России без VPN?
Скрипт грузится с google.com и часто блокируется. Для РФ-аудитории берут Yandex SmartCaptcha или Cloudflare Turnstile — у них схожий API и нет проблем с доступностью.
Какой score выставлять порогом в v3?
По умолчанию 0.5. Для жёстких форм (регистрация, восстановление пароля) поднимают до 0.7, для второстепенных — снижают до 0.3, иначе режется живой трафик.
Может ли reCAPTCHA замедлить сайт?
Да, скрипт ~250 КБ и тянет внешние домены. На лендингах его подключают только на странице с формой через ленивую загрузку, а не глобально в шапке.