S
Stitex
Безопасность

Капча без передачи данных за рубеж

Короткий ответ: данные не уходят на сторону при трёх условиях. Скрипт капчи грузится с домена, который вы можете назвать. Проверка токена идёт на сервер в понятной вам юрисдикции. В браузере посетителя нет запросов к чужим доменам. Проверяется это не строчкой в договоре, а панелью разработчика. Ниже — чек-лист приёмки: что открыть, что считать провалом и что оставить себе на руках.

3 сентября 20268 минутStitex Technologies
Что это за текст
Это чек-лист технической приёмки, а не юридическая консультация. Правовую квалификацию — считаются ли собираемые признаки персональными данными и что из этого следует по 152-ФЗ — даёт ваш юрист или DPO. Здесь только проверяемая часть: чей сервер видит вашего посетителя и как это увидеть своими глазами.

Что именно принимаем

Капчу легко принять по одному признаку: «стоит на форме, спам прекратился». Этого мало. Виджет капчи — это чужой код в браузере вашего посетителя. Он обращается туда, куда его написали обращаться. Приёмка отвечает на другой вопрос: какие домены участвуют в проверке, что им уходит и кто за этими доменами стоит.

Дальше — семь пунктов. У каждого одна рамка: чем проверяем, что считаем нормой, что считаем провалом. Результат записывайте сразу.

Пункт 1. Домен, с которого грузится скрипт

Откройте исходный код страницы с формой. Найдите тег подключения капчи. В нём указан адрес, откуда браузер посетителя тянет код. Это самая честная строчка во всей истории: запрос уходит у каждого, кто открыл вашу форму. Отправил он её или закрыл — неважно.

  • Норма: домен, который вы можете назвать вслух и знаете, чей он.
  • Провал: домен, о котором никто в проекте не знает, — включая случай «его поставил прошлый подрядчик».
  • Отдельно: адрес записан жёстко или подставляется из настроек — во втором случае проверять надо и настройки.

Пункт 2. Куда обращается браузер посетителя

Первого тега мало. Загруженный скрипт может подтянуть следующий, а тот — шрифт, картинку или телеметрию. Смотрите не разметку, а фактический трафик. Откройте панель разработчика, вкладку «Сеть». Очистите список. Пройдите путь посетителя целиком: загрузка страницы, фокус в поле, заполнение, отправка.

Проверяйте в чистом профиле или в приватном окне. В рабочем браузере часть запросов уже в кэше — в списке они не появятся. Повторите на телефоне: мобильная версия бывает собрана из другой сборки.

  • Выпишите все домены, к которым обращался браузер за время сценария,
  • Вычеркните свои и домены, согласованные при постановке задачи,
  • То, что осталось, — список для разбора: кто это и зачем он в форме,
  • Отдельно отметьте запросы, которые уходят ещё до отправки формы.

Пункт 3. Где проверяется токен

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

  • Норма: адрес проверки известен, домен тот же, что и у виджета, ответ обрабатывается.
  • Провал: серверной проверки нет вовсе — форма верит браузеру на слово.
  • Провал: при ошибке проверки форма всё равно принимается «чтобы не терять заявки». Тогда капча не защищает, а декорирует.

Пункт 4. Перечень категорий данных

Не перепутайте два разных вопроса. Как капча отличает бота от человека — коммерческая тайна разработчика. Это нормально: опубликованный алгоритм обходят. А вот какие категории данных уходят на сервер проверки — не тайна ни при каких обстоятельствах. От этого зависят ваши документы и ваша ответственность перед посетителем.

Поведенческая капча смотрит, как человек ведёт себя со страницей, и видит IP-адрес и параметры браузера. Общая механика описана в статье невидимая капча: защита форм и логина от ботов. Требуйте перечень письменно. Сверьте его с вашей политикой обработки данных.

  • Норма: подрядчик присылает перечень категорий и назначение каждой.
  • Провал: ответ «это наше ноу-хау» на вопрос о категориях. Про алгоритм — законный ответ, про состав данных — нет.
  • Провал: в политике на сайте о капче не сказано ничего, а посетителю показывается только галочка согласия.

Пункт 5. Кто оператор и на каком основании

Технический ответ «данные уходят на такой-то домен» становится юридическим только вместе с ответом «а это чьё юридическое лицо». Спросите прямо: кто владелец сервиса, где размещены серверы проверки, есть ли договор или поручение на обработку. Если сервис бесплатный, вопрос не отпадает. Спросите заодно, за счёт чего сервис живёт.

Ту же логику на соседней задаче — когда наружу уходят не признаки поведения, а тексты документов, — разбирает статья нейросеть и 152-ФЗ: AI без утечки данных клиентов.

Пункт 6. Что будет, когда чужой домен станет недоступен

Внешний домен — это ещё и точка отказа. Пока он отвечает, всё хорошо. Перестанет отвечать или окажется недоступен из вашей страны — форма останется без капчи. Решите заранее, что тогда произойдёт. Не выясняйте это по звонку клиента.

Проверяется просто. Заблокируйте домен капчи локально — в файле hosts или расширением. Попробуйте отправить форму. Сверьте увиденное с тем, о чём договаривались.

  • Норма: поведение описано заранее и совпадает с фактом. Форма либо честно сообщает о недоступности проверки, либо принимается с пометкой для ручного разбора.
  • Провал: кнопка не работает и посетитель не понимает почему.
  • Провал: капча молча отключается, и об этом никто не узнаёт.

Пункт 7. Повторная приёмка

Однократная приёмка проверяет ту сборку, что стоит сегодня. Домены меняются: при обновлении виджета, при переезде на новый тариф, при подключении «улучшенной защиты» на стороне сервиса, просто при выкатке сайта. Прогоняйте второй и третий пункты после каждого релиза, который трогает формы. Разбор инцидента не планируется. Этот прогон — планируется.

Сводная таблица приёмки

ПунктЧем проверяетсяПровал, если
Домен скриптаисходный код страницыдомен неизвестен команде
Трафик браузерапанель разработчика, вкладка «Сеть»в списке есть посторонние хосты
Серверная проверкакод бэкенда, адрес проверкипроверки нет или ошибка игнорируется
Категории данныхписьменный ответ подрядчикаответ «это ноу-хау»
Оператор и основаниереквизиты владельца, договорвладельца назвать некому
Поведение при отказеблокировка домена в hostsформа молча ломается
Повторный прогонрегламент релизапроверяли один раз при запуске

Что остаётся у вас после приёмки

Приёмка засчитана не тогда, когда всё «вроде работает». Она засчитана, когда результат можно показать другому человеку через полгода. Минимальный комплект:

  • Список доменов, участвующих в проверке, с пометкой чей каждый,
  • Снимки экрана вкладки «Сеть» на пустом профиле — до и после отправки формы,
  • Письменный перечень категорий передаваемых данных от подрядчика,
  • Описанное и проверенное поведение формы при недоступности проверки,
  • Дата приёмки, версия виджета и кто принимал.
Тот же принцип шире капчи
Приёмка «по факту, а не по обещанию» одинаково устроена для форм, сервера и сайта целиком. Соседний чек-лист того же жанра — аудит безопасности сервера: там проверяются не домены в браузере, а то, что сервер показывает посторонним.

Как это устроено у нас

Stitex Captcha — наша собственная разработка, а не обёртка над чужим сервисом. Виджет грузится с нашего домена. Серверная проверка токена идёт на наш же адрес. Инфраструктура — в России. Третьим лицам мы данные посетителей не передаём. Первый и третий пункты чек-листа закрываются здесь одним и тем же доменом.

Что именно вы получаете и как выглядит подключение — на странице Stitex Captcha. Если вы ещё выбираете сам тип проверки, сначала посмотрите невидимую капчу против обычной. Приёмка по доменам нужна в любом случае. Требования к самой форме проверки от этого выбора зависят.

Частые вопросы

Как быстро проверить, что капча не отправляет данные на сторону?

Откройте страницу с формой в приватном окне, включите панель разработчика на вкладке «Сеть» и заполните форму до конца. Вы увидите список доменов, к которым обращался браузер. Всё, чего нет в согласованном списке, — предмет разбора, а не мелочь.

Достаточно ли обещания подрядчика в договоре?

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

Капча собирает персональные данные?

Она работает с признаками поведения и параметрами браузера, а также видит IP-адрес посетителя. Является ли этот набор персональными данными в вашем случае — вопрос к юристу или DPO, а не к разработчику. Ваша задача на приёмке — получить перечень категорий и знать, чей сервер их принимает.

Что делать, если капча уже стоит и грузится с чужого домена?

Не выдёргивайте её вечером пятницы: форма останется без защиты на все выходные. Зафиксируйте текущее состояние, подготовьте замену, переключите и прогоните приёмку заново — уже по этому же чек-листу.

Невидимая капча — это и есть капча без передачи данных?

Нет, это разные свойства. Невидимость отвечает на вопрос «мешает ли проверка живому человеку», а передача данных — на вопрос «чей сервер его видит». Капча бывает невидимой и при этом полностью зарубежной, и наоборот.

Капча, у которой данные остаются у нас с вами

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

Контакты

Спросите нас по теме статьи

Опишите свою ситуацию — скажем, что из этого применимо у вас, а что нет. Без обязательств.

Telegram
@StitexBot
Отвечаем
В течение рабочего дня