Шрифты, CDN и хостинг: трансграничная передача, которую никто не замечает

Я делаю сервис, через который проходят чужие договоры, поэтому к 152-ФЗ отношусь внимательнее многих. Документы, формы, вход - всё уходит на сервер в России, это я проверял не раз. А на прошлой неделе решил проверить не сервис, а сам сайт - просто посмотреть, к каким доменам обращается браузер, когда человек открывает главную.
Нашёл три иностранных компании. Ни одну из них я туда сознательно не звал.
Хостинг - Vercel, американская компания. При каждом заходе она видела IP, браузер и открытые страницы.
Шрифты - Google Fonts на всех 33 страницах. Браузер посетителя сам ходил к Google за файлами шрифтов и отдавал ему свой IP.
Библиотеки - на странице проверки договора две библиотеки для чтения PDF и Word грузились с cdnjs, а это Cloudflare.
Договоры через них не шли - только технические данные посетителей. Но по 152-ФЗ этого может быть достаточно, и вот почему.
Почему это вообще передача за границу
Статья 12 закона 152-ФЗ. Трансграничная передача - это передача персональных данных на территорию другого государства иностранному лицу. Физически "отправлять файл" не обязательно: юристы по персональным данным давно относят сюда Google Analytics, Notion, Slack, AWS - любой иностранный сервис, к которому попадают данные.
Самый спорный момент - считается ли персональными данными IP-адрес. Сам по себе IP - вопрос открытый, суды решают по-разному. Но Роскомнадзор толкует широко: IP вместе с cookie, браузером и историей посещений позволяет отличить одного человека от другого. Проверять будут по его толкованию, а не по вашему.
И ещё одна тонкость. Кажется, что к Google за шрифтом ходит браузер посетителя, а не вы. Но строчку <link href="https://fonts.googleapis.com/..."> в страницу вписали вы. В Германии суд уже в 2022 году присудил посетителю компенсацию именно за это: сайт подключал Google Fonts, и IP уходил в США без его согласия (Landgericht München I, 3 O 17493/20). У нас таких дел я не нашёл, но логика та же.
Что требует закон. С 1 марта 2023 года до начала трансграничной передачи нужно подать в Роскомнадзор отдельное уведомление - не то, что о начале обработки, а второе, о намерении передавать за рубеж. США и Евросоюза в перечне стран с "адекватной защитой" нет: для них нужно ждать десять рабочих дней, в течение которых регулятор вправе передачу запретить или ограничить. Отдельного штрафа за передачу без уведомления в КоАП нет - её квалифицируют по части 1 статьи 13.11, это 150-300 тысяч для юрлица.
А если иностранный сервис не просто видит посетителя, а принимает данные из формы - заявку, телефон, почту, - добавляется часть 8: персональные данные россиян при сборе должны записываться в базы на территории России. Это уже 1-6 миллионов для юрлица. ИП по этой части отвечает как юрлицо.
Где это прячется
Почти всегда - в местах, которые не воспринимаются как "передача данных". Вот что встречается чаще всего.
Хостинг и CDN. Vercel, Netlify, GitHub Pages, Firebase - американские компании, даже если ближайший узел стоит в Европе. Отдельно - Cloudflare в режиме прокси: он расшифровывает весь трафик на своей стороне, то есть видит не только IP, но и содержимое форм.
Шрифты. Google Fonts, Adobe Fonts. Самый массовый случай: подключаются одной строчкой из любого руководства по вёрстке, и никто не думает, что это внешний запрос на каждой странице.
Библиотеки с CDN. cdnjs, jsDelivr, unpkg, Google Hosted Libraries. jQuery, Bootstrap, библиотеки графиков и иконок - "чтобы не тащить в репозиторий".
Аналитика и пиксели. Google Analytics, Tag Manager, Hotjar, Microsoft Clarity. Здесь уходит не только IP, но и поведение: клики, прокрутка, а иногда и записи сеансов с тем, что человек вводил в поля.
Капча. reCAPTCHA работает за счёт того, что собирает данные о поведении посетителя и отправляет их Google.
Чужие блоки на странице. Видео с YouTube, карты Google, окна чатов вроде Intercom, Crisp, Tawk.to. Видео грузится, даже если его никто не запускал.
Формы. Google Forms, Typeform, иностранные CRM. Это самый дорогой случай: заявка с телефоном и почтой сразу ложится на иностранный сервер, то есть первичный сбор идёт не в России.
Почта и рассылки. Корпоративная почта на Gmail, рассылки через Mailchimp или SendGrid. Каждое письмо клиенту - его адрес и переписка за рубежом.
Мониторинг ошибок. Sentry и подобные в облачной версии: вместе с ошибкой часто уходят адрес страницы, параметры запроса, данные пользователя.
Telegram-боты. Серверы Telegram за рубежом. Бот, которому клиенты пишут заявки, - это тоже передача. У меня бот присылает только технические сообщения о состоянии сервера, без данных клиентов, и это осознанное решение, а не случайность.
Как я это проверял
Ничего хитрого: открыл свой сайт, нажал F12 и вставил в консоль строчку, которая выводит все внешние домены, к которым браузер обратился при загрузке страницы:
[...new Set(performance.getEntriesByType('resource')
.map(r => new URL(r.name).host))]
.filter(h => h !== location.host)
Прошёлся так по главноей, по странице с формой и по странице оплаты: на них обычно больше всего внешнего. Вкладка Network показывает то же подробнее - какой файл откуда пришёл и что ушло в запросе.
Хостинг этой строчкой не увидеть, его я проверял отдельно: куда указывает домен (nslookup), и чей это IP. У меня в DNS стоял CNAME на cname.vercel-dns.com, тут всё понятно и без поиска по IP.
На странице проверки договора в списке оказалось четыре домена: два у Google (шрифты), Cloudflare (библиотеки) и Яндекс Метрика. После правок остался один - mc.yandex.ru, Метрика, она в России.
Что я сделал
Ничего сложного, на всё ушло полдня.
Шрифты положил к себе. Скачал файлы Inter и Fira Code - только кириллицу и латиницу, остальные наборы сайту не нужны. Вышло 8 файлов, 256 КБ, браузер грузит из них только нужные. Подключение заменил на свой CSS на всех 33 страницах и убрал 52 строчки preconnect к Google. Заодно страница стала открываться чуть быстрее: браузеру не нужно соединяться с ещё одним доменом.
Библиотеки положил рядом с сайтом. pdf.js и mammoth - около 2 МБ. Сам договор и раньше разбирался в браузере и никуда не уходил, а вот библиотеки грузились с Cloudflare.
Перенёс сайт на сервер в России. По дороге выяснилось неприятное: у адреса с www на старом хостинге давно истёк сертификат, а я туда просто никогда не заходил. На новом месте www теперь перенаправляет на основной адрес.
Обновил политику конфиденциальности. Теперь там прямо написано, что сайт и сервис размещены в России, а шрифты и библиотеки грузятся с того же сервера. Писать такое можно только после проверки, иначе это уже неправда в публичном документе.
Осознанно на иностранной площадке я оставил только пересылку технических сообщений от сервера в Telegram: с сервера в России до Telegram напрямую не достучаться. Персональных данных в этих сообщениях нет, только "сервер упал / поднялся".
Если иностранный сервис всё-таки нужен
Бывает, что замены нет или переезд не стоит усилий. Тогда хотя бы:
Подайте два уведомления в Роскомнадзор: об обработке персональных данных и о трансграничной передаче. Для США и Евросоюза - подождите десять рабочих дней.
Уберите из иностранного сервиса всё, без чего он работает. Формы - на свой сервер, аналитика - без записи сеансов, в Sentry - без данных пользователя.
Напишите об этом в политике конфиденциальности. Честно: какой сервис, в какой стране, что получает.
Безупречной передача от этого не станет: договора поручения с Google у вас, скорее всего, нет и не будет. Но так вы хотя бы не "не знали", а "знали и сделали, что могли".
Что бы я сделал иначе
Проверял бы сайт, а не только сервис. Я был спокоен, потому что знал, куда уходят договоры. А сайт собирал по руководствам, где Google Fonts и CDN - это просто "так принято", и ни разу не проверил его с точки зрения закона.
Не верил бы своей же политике конфиденциальности. В ней было написано про серверы в России, и это было правдой - про сервис. Про сам сайт это правдой не было. Документ я писал, когда думал о договорах, а не о шрифтах.
Заходил бы на свой сайт с www хотя бы раз в месяц. Просроченный сертификат я нашёл случайно, при переезде. Сколько людей за это время увидели предупреждение браузера и закрыли вкладку, я уже не узнаю.
Коротко
Иностранный хостинг, шрифты и CDN получают IP посетителей при каждом визите. Регулятор может считать это трансграничной передачей.
Самый дорогой случай - формы на иностранном сервисе: это ещё и нарушение локализации, 1-6 млн для юрлица.
Проверка своего сайта - одна строчка в консоли браузера.
Шрифты и библиотеки кладутся к себе за час, хостинг переносится за полдня.
Если сервис нужен - уведомления в РКН, минимум данных и честная запись в политике.
Это не юридическая консультация: нормы и штрафы приведены по состоянию на октябрь 2026 года, в конкретной ситуации проверьте актуальную редакцию.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.