Защита форм

Не работает капча на сайте

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

Диагностика

От загрузки скрипта
до решения сервера

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

01

Скрипт и контейнер

Проверяем адрес библиотеки, порядок загрузки, callback, размер контейнера и ошибки JavaScript.

02

Ключ и домен

Сверяем клиентский ключ, список разрешённых сайтов, протокол, поддомены и тестовый режим.

03

Политики браузера

Ищем блокировку CSP, расширением, DNS-фильтром, cookie-настройками или сетевым ограничением.

04

Токен

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

05

Серверная проверка

Сверяем адрес API, серверный ключ, IP, таймаут, обработку статусов и закрытый сценарий при сбое.

06

Логика формы

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

Результат

Посетитель отправляет заявку, бот не обходит проверку

Форма не блокирует человека

Кнопка, виджет и повторная попытка работают на выбранных устройствах и браузерах.

Сервер проверяет токен

Заявка принимается только после успешного ответа провайдера CAPTCHA.

Сбой виден пользователю

При недоступности внешнего сервиса форма не зависает молча и предлагает понятное действие.

Порядок работ

Проверяем форму как посетитель и как бот

Пришлите URL формы, устройство и описание сбоя. Доступ к серверному ключу передавать в сообщении не нужно: при необходимости его меняют внутри защищённой конфигурации.

01

Воспроизводим

Фиксируем сетевые запросы, консоль, появление задания и момент остановки отправки.

02

Проверяем цепочку

Проходим путь от клика до callback, токена, обработчика формы и серверного ответа.

03

Исправляем

Меняем подключение виджета, настройки домена, логику формы или серверную валидацию.

04

Тестируем отказ

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

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

Границы работ

Одна CAPTCHA не заменяет защиту обработчика

Сервер должен проверять входные данные, ограничивать частоту запросов и отклонять заявку при неуспешной проверке токена. Иначе бот отправит запрос напрямую, минуя интерфейс. Блокировщики рекламы и корпоративные фильтры иногда останавливают внешний скрипт у конкретного посетителя. Для такого случая нужен понятный текст ошибки или запасной канал связи. Подключение платного тарифа провайдера и изменение политики обработки данных согласуем отдельно.

Вопросы

Перед исправлением

Почему капча не появляется?

Проверяем загрузку скрипта, клиентский ключ, разрешённый домен, контейнер, CSP и блокировщики.

Почему форма не отправляется после проверки?

Ищем ошибку callback, потерю токена, повторный перехват submit или отказ серверной проверки.

Можно ли использовать невидимую CAPTCHA?

Да. Проверка запускается при отправке, а подозрительному посетителю сервис показывает задание. Серверная валидация остаётся обязательной.

Как проверяется защита?

Тестируем успешную заявку, неверный и повторный токен, таймаут, несколько форм и мобильные браузеры.

Первый шаг

Пришлите страницу с неработающей CAPTCHA

Опишите, появляется ли виджет, проходит ли задание и что происходит после нажатия кнопки формы.