Что именно принимаем
Капчу легко принять по одному признаку: «стоит на форме, спам прекратился». Этого мало. Виджет капчи — это чужой код в браузере вашего посетителя. Он обращается туда, куда его написали обращаться. Приёмка отвечает на другой вопрос: какие домены участвуют в проверке, что им уходит и кто за этими доменами стоит.
Дальше — семь пунктов. У каждого одна рамка: чем проверяем, что считаем нормой, что считаем провалом. Результат записывайте сразу.
Пункт 1. Домен, с которого грузится скрипт
Откройте исходный код страницы с формой. Найдите тег подключения капчи. В нём указан адрес, откуда браузер посетителя тянет код. Это самая честная строчка во всей истории: запрос уходит у каждого, кто открыл вашу форму. Отправил он её или закрыл — неважно.
- •Норма: домен, который вы можете назвать вслух и знаете, чей он.
- •Провал: домен, о котором никто в проекте не знает, — включая случай «его поставил прошлый подрядчик».
- •Отдельно: адрес записан жёстко или подставляется из настроек — во втором случае проверять надо и настройки.
Пункт 2. Куда обращается браузер посетителя
Первого тега мало. Загруженный скрипт может подтянуть следующий, а тот — шрифт, картинку или телеметрию. Смотрите не разметку, а фактический трафик. Откройте панель разработчика, вкладку «Сеть». Очистите список. Пройдите путь посетителя целиком: загрузка страницы, фокус в поле, заполнение, отправка.
Проверяйте в чистом профиле или в приватном окне. В рабочем браузере часть запросов уже в кэше — в списке они не появятся. Повторите на телефоне: мобильная версия бывает собрана из другой сборки.
- •Выпишите все домены, к которым обращался браузер за время сценария,
- •Вычеркните свои и домены, согласованные при постановке задачи,
- •То, что осталось, — список для разбора: кто это и зачем он в форме,
- •Отдельно отметьте запросы, которые уходят ещё до отправки формы.
Пункт 3. Где проверяется токен
Работающая капча состоит из двух половин. Виджет в браузере выдаёт токен. Ваш сервер этот токен проверяет — запросом к серверу проверки. Вторая половина посетителю не видна, поэтому из приёмки её легко упустить. Найдите в коде бэкенда адрес, на который уходит проверка. Посмотрите на домен.
- •Норма: адрес проверки известен, домен тот же, что и у виджета, ответ обрабатывается.
- •Провал: серверной проверки нет вовсе — форма верит браузеру на слово.
- •Провал: при ошибке проверки форма всё равно принимается «чтобы не терять заявки». Тогда капча не защищает, а декорирует.
Пункт 4. Перечень категорий данных
Не перепутайте два разных вопроса. Как капча отличает бота от человека — коммерческая тайна разработчика. Это нормально: опубликованный алгоритм обходят. А вот какие категории данных уходят на сервер проверки — не тайна ни при каких обстоятельствах. От этого зависят ваши документы и ваша ответственность перед посетителем.
Поведенческая капча смотрит, как человек ведёт себя со страницей, и видит IP-адрес и параметры браузера. Общая механика описана в статье невидимая капча: защита форм и логина от ботов. Требуйте перечень письменно. Сверьте его с вашей политикой обработки данных.
- •Норма: подрядчик присылает перечень категорий и назначение каждой.
- •Провал: ответ «это наше ноу-хау» на вопрос о категориях. Про алгоритм — законный ответ, про состав данных — нет.
- •Провал: в политике на сайте о капче не сказано ничего, а посетителю показывается только галочка согласия.
Пункт 5. Кто оператор и на каком основании
Технический ответ «данные уходят на такой-то домен» становится юридическим только вместе с ответом «а это чьё юридическое лицо». Спросите прямо: кто владелец сервиса, где размещены серверы проверки, есть ли договор или поручение на обработку. Если сервис бесплатный, вопрос не отпадает. Спросите заодно, за счёт чего сервис живёт.
Ту же логику на соседней задаче — когда наружу уходят не признаки поведения, а тексты документов, — разбирает статья нейросеть и 152-ФЗ: AI без утечки данных клиентов.
Пункт 6. Что будет, когда чужой домен станет недоступен
Внешний домен — это ещё и точка отказа. Пока он отвечает, всё хорошо. Перестанет отвечать или окажется недоступен из вашей страны — форма останется без капчи. Решите заранее, что тогда произойдёт. Не выясняйте это по звонку клиента.
Проверяется просто. Заблокируйте домен капчи локально — в файле hosts или расширением. Попробуйте отправить форму. Сверьте увиденное с тем, о чём договаривались.
- •Норма: поведение описано заранее и совпадает с фактом. Форма либо честно сообщает о недоступности проверки, либо принимается с пометкой для ручного разбора.
- •Провал: кнопка не работает и посетитель не понимает почему.
- •Провал: капча молча отключается, и об этом никто не узнаёт.
Пункт 7. Повторная приёмка
Однократная приёмка проверяет ту сборку, что стоит сегодня. Домены меняются: при обновлении виджета, при переезде на новый тариф, при подключении «улучшенной защиты» на стороне сервиса, просто при выкатке сайта. Прогоняйте второй и третий пункты после каждого релиза, который трогает формы. Разбор инцидента не планируется. Этот прогон — планируется.
Сводная таблица приёмки
| Пункт | Чем проверяется | Провал, если |
|---|---|---|
| Домен скрипта | исходный код страницы | домен неизвестен команде |
| Трафик браузера | панель разработчика, вкладка «Сеть» | в списке есть посторонние хосты |
| Серверная проверка | код бэкенда, адрес проверки | проверки нет или ошибка игнорируется |
| Категории данных | письменный ответ подрядчика | ответ «это ноу-хау» |
| Оператор и основание | реквизиты владельца, договор | владельца назвать некому |
| Поведение при отказе | блокировка домена в hosts | форма молча ломается |
| Повторный прогон | регламент релиза | проверяли один раз при запуске |
Что остаётся у вас после приёмки
Приёмка засчитана не тогда, когда всё «вроде работает». Она засчитана, когда результат можно показать другому человеку через полгода. Минимальный комплект:
- •Список доменов, участвующих в проверке, с пометкой чей каждый,
- •Снимки экрана вкладки «Сеть» на пустом профиле — до и после отправки формы,
- •Письменный перечень категорий передаваемых данных от подрядчика,
- •Описанное и проверенное поведение формы при недоступности проверки,
- •Дата приёмки, версия виджета и кто принимал.
Как это устроено у нас
Stitex Captcha — наша собственная разработка, а не обёртка над чужим сервисом. Виджет грузится с нашего домена. Серверная проверка токена идёт на наш же адрес. Инфраструктура — в России. Третьим лицам мы данные посетителей не передаём. Первый и третий пункты чек-листа закрываются здесь одним и тем же доменом.
Что именно вы получаете и как выглядит подключение — на странице Stitex Captcha. Если вы ещё выбираете сам тип проверки, сначала посмотрите невидимую капчу против обычной. Приёмка по доменам нужна в любом случае. Требования к самой форме проверки от этого выбора зависят.
Частые вопросы
Как быстро проверить, что капча не отправляет данные на сторону?
Откройте страницу с формой в приватном окне, включите панель разработчика на вкладке «Сеть» и заполните форму до конца. Вы увидите список доменов, к которым обращался браузер. Всё, чего нет в согласованном списке, — предмет разбора, а не мелочь.
Достаточно ли обещания подрядчика в договоре?
Договор фиксирует обязательство, приёмка — факт. Это разные вещи: подрядчик может честно не знать, что подключённый им виджет тянет за собой второй скрипт с другого домена. Поэтому пункт договора и протокол приёмки нужны оба.
Капча собирает персональные данные?
Она работает с признаками поведения и параметрами браузера, а также видит IP-адрес посетителя. Является ли этот набор персональными данными в вашем случае — вопрос к юристу или DPO, а не к разработчику. Ваша задача на приёмке — получить перечень категорий и знать, чей сервер их принимает.
Что делать, если капча уже стоит и грузится с чужого домена?
Не выдёргивайте её вечером пятницы: форма останется без защиты на все выходные. Зафиксируйте текущее состояние, подготовьте замену, переключите и прогоните приёмку заново — уже по этому же чек-листу.
Невидимая капча — это и есть капча без передачи данных?
Нет, это разные свойства. Невидимость отвечает на вопрос «мешает ли проверка живому человеку», а передача данных — на вопрос «чей сервер его видит». Капча бывает невидимой и при этом полностью зарубежной, и наоборот.