The Jerusalem PostTurkey sending technical, defensive support to Saudi Arabia to help fight Houthis, officials sayESPNAre Texans and Chargers this bad? How should we bet the Rams?ESPN DeportesGurú de las Diagonales: El misterio en torno a Drake MayeBollywood HungamaSCOOP: Ramayana expected to have paid previews on November 4; Godzilla Minus Zero to get limited showcasing in IMAX in IndiaDaily MaverickLABOUR ABUSE: New report exposes the exploitation behind the world’s food systems workersInquirerMan nabbed after surrendering unlicensed firearm in Oriental MindoroZDF heuteEntdecken Sie das ZDF-NachrichtenstudioThe South AfricanSaleng spotted back in Sundowns training ahead of Pirates showdownBBC Sport'Draining' few days for Gauff after online racist abuse01netAmazon éclate le prix de ce PC portable Dell : -45% pour finir le Prime Day en beautéRai NewsCile, cane randagio salvato dalla piena del fiume MapochoSBS 뉴스"우리 대응에 북한 당황"…"지뢰 제거, 단호한 대응이냐"
The Daily Newsstand · Free, Always
Wednesday, October 7, 2026

Что отвалится у вашего сайта, если завтра отключат иностранные сервисы. Проверил 50 сайтов

Translate

Мне стало интересно, насколько российские сайты в 2026 году ещё зависят от зарубежных сервисов. Не в смысле «пользуется ли компания Zoom», а буквально: что сломается у сайта, если завтра иностранный провайдер отключит российских клиентов. Вручную такое проверять долго, поэтому я написал для этого открытую утилиту и прогнал через неё 50 сайтов: банки, магазины, операторов связи, авиакомпании, доставку, онлайн‑школы и несколько госсайтов. Спойлер: серверы почти все уже перевезли, а вот «мелочи» вроде сертификатов, аналитики и шрифтов остались.

Зачем это вообще проверять

Последние годы показали, что иностранный сервис может отвалиться в любой момент. В 2022 году регистратор Namecheap перестал обслуживать клиентов из России. Иностранные удостоверяющие центры отзывали сертификаты у российских организаций. YouTube в России сильно замедлен, и встроенное видео на сайте у многих посетителей просто не грузится.

Есть и юридическая сторона. С 1 марта 2023 года о трансграничной передаче персональных данных нужно заранее уведомлять Роскомнадзор. А любой Google Analytics, Google Fonts или reCAPTCHA на сайте отправляет IP‑адрес посетителя на зарубежные серверы. Многие владельцы сайтов об этом даже не задумываются: подключили счётчик пять лет назад и забыли.

Отсюда вопрос: как быстро понять, что из всего этого касается конкретного сайта? Готового бесплатного инструмента я не нашёл и решил сделать свой.

Что получилось на 50 сайтах

Я взял 50 сайтов крупных российских компаний и госорганов и проверил каждый в браузерном режиме: главную страницу и ещё несколько внутренних (контакты, доставка, оплата и так далее). Названия компаний из выборки приводить не буду: проверка автоматическая и может ошибаться, а цель не в том, чтобы кого‑то пристыдить. Примеры в репозитории сделаны на нескольких известных сайтах, это демонстрация, а не результаты исследования.

За каждую найденную иностранную зависимость утилита снимает баллы и ставит оценку от A до F. Распределение получилось такое:

Оценка

Сайтов

A

19

B

19

C

5

D

6

F

1

Сертификаты. Иностранный SSL‑сертификат у 43 сайтов из 50. Чаще всего это бельгийский GlobalSign (29 сайтов) и американский Let's Encrypt (12). Сертификат российского НУЦ Минцифры стоит только у 4 сайтов. Это самая массовая зависимость, но и самая вынужденная: сертификату НУЦ не доверяют Chrome, Firefox и Safari, так что совсем без иностранного центра сайт у большинства посетителей откроется с ошибкой. Поэтому важно не избавиться от него, а быть готовым быстро сменить. Главный риск тут даже не отзыв, а отказ в продлении: сертификат Let's Encrypt живёт 90 дней, и если выпуск настроен вручную, сайт перестанет открываться, как только срок закончится.

Аналитика и реклама. Иностранные счётчики стоят у 17 сайтов, и почти всегда это Google Analytics или Google Tag Manager (16 сайтов). Самое забавное: у 9 сайтов на страницах до сих пор есть скрипты Google Ads и AdSense, хотя Google прекратил показ рекламы в России ещё в 2022 году. Скорее всего, их просто забыли убрать.

Шрифты, капча, видео. Google Fonts грузится у 8 сайтов, Google reCAPTCHA стоит у 4, встроенный YouTube — у 3. Каждый такой скрипт передаёт данные посетителя за рубеж.

Почта и DNS. Почта у иностранного провайдера у 11 сайтов, из них у пяти Google Workspace. DNS у зарубежных провайдеров у 8.

Хостинг. А вот здесь почти полный порядок: сервер за рубежом нашёлся только у одного сайта из 50. Сайты за CDN вроде Cloudflare утилита считает отдельно: в этом случае настоящий сервер скрыт, и иностранным оказывается CDN, а не хостинг.

Конструкторы. 4 сайта из выборки сделаны на Tilda. Её создала российская команда, но сеть, на которой работают сайты, зарегистрирована на компанию в ОАЭ.

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

Как устроен инструмент

Утилита называется Suveren, она написана на Python и лежит на GitHub под лицензией MIT. Расскажу про несколько вещей, которые оказались интереснее, чем я думал.

Страна сервиса — это не страна дата‑центра

Первое, что пришлось решить: что считать «иностранным». Сервер Hetzner может стоять в Финляндии, но компания немецкая, а санкции применяются к компании, а не к стойке в дата‑центре. Поэтому страной сервиса я считаю юрисдикцию владельца.

Чтобы узнать, кому принадлежит IP‑адрес, не нужны никакие ключи API. Есть бесплатный сервис Team Cymru, который отвечает прямо через DNS. Переворачиваешь IP задом наперёд и делаешь TXT‑запрос:

$ dig +short TXT 8.8.8.8.origin.asn.cymru.com.
"15169 | 8.8.8.0/24 | US | arin | 2023-12-28"

(У адреса 8.8.8.8 перевёрнутая запись совпадает с прямой, поэтому пример такой удобный.)

В ответе номер автономной системы (сети) и страна. Вторым запросом по номеру сети получаем название владельца. Дальше уже дело базы.

База сервисов

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

Service(
    "Hetzner",
    "DE",                    # страна компании
    ns=("hetzner.com",),     # так выглядят его DNS-серверы
    mx=("your-server.de",),  # так выглядят его почтовые серверы
    asn=(24940,),            # номер его сети
)

Для скриптов на странице задаются регулярные выражения: mc.yandex.ru — это Яндекс Метрика, googletagmanager.com — Google Analytics и так далее. Российские сервисы тоже есть в базе, чтобы в отчёте была полная картина, а не только «плохое».

Сайты, которые не хотят, чтобы их проверяли

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

Пришлось сделать две вещи. Во‑первых, научить утилиту распознавать такие заглушки и честно писать «не удалось проверить» вместо ложной ошибки. Во‑вторых, добавить режим, в котором сайт открывается в настоящем браузере через Playwright. Отдельно скачивать браузер не нужно: используется Edge или Chrome, которые уже стоят в системе.

Браузерный режим неожиданно оказался намного полезнее, чем я ожидал. Он видит все запросы, которые делает страница, включая скрипты, подгруженные через менеджеры тегов. Например, у одного крупного онлайн‑кинотеатра так нашёлся пиксель TikTok, которого в исходном HTML нет вообще.

Санкционные списки и транслитерация

Утилита умеет проверять и компании: по ИНН берёт данные из ЕГРЮЛ и ищет компанию и её руководителя в санкционных списках США, ЕС и Великобритании. Все три списка открытые.

С ИНН всё просто: во многих записях он указан, и совпадение точное. А вот с названиями пришлось повозиться. В российском реестре компания называется «ПАО „СБЕРБАНК РОССИИ“», а в американском списке «Public Joint Stock Company Sberbank of Russia». Я сделал нормализацию: транслитерация, выкидывание организационно‑правовых форм и сравнение по «скелету» слова из первой буквы и согласных. Так эти два названия сходятся.

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

Как одно регулярное выражение повесило проверку

Эту историю хочется рассказать отдельно. Когда я запустил проверку 50 сайтов, через 10 минут было готово только 6. При этом по отдельности каждый сайт проверялся секунд за тридцать.

Сначала я думал на сеть, потом на браузер. Оказалось, ни то ни другое. В базе было несколько шаблонов вот такого вида:

r"[\w.-]*adriver\.ru"

Выглядит безобидно. Но если на странице есть длинная строка без пробелов (а в минифицированном JavaScript таких полно), регулярка начинает перебор с каждой позиции и работает квадратично. Я замерил: на строке в 20 тысяч символов один такой шаблон думал 2 секунды, на строке в 200 тысяч — уже минуты. И всё это время программа стояла, потому что вычисление блокировало весь цикл событий.

Исправление оказалось смешным: убрать ведущий [\w.-]* и искать просто adriver\.ru. Результат тот же, а работает мгновенно. Плюс я добавил тест, который прогоняет все шаблоны базы по строке из 100 тысяч символов и падает, если это занимает больше секунды. После этого 50 сайтов проверились за 5 минут вместо часа с лишним.

Что ещё умеет

Коротко, чтобы не превращать статью в документацию:

  • проверка по 152-ФЗ: политика конфиденциальности, согласие в формах, уведомление о cookies, трансграничная передача, где хранятся данные; у каждого вывода указана статья закона со ссылкой на текст;

  • проверка по реестру блокировок Роскомнадзора;

  • проверка компании по ИНН: ЕГРЮЛ, реестр операторов персональных данных, санкционные списки;

  • массовая проверка списка сайтов со сводной таблицей и CSV (это для веб‑студий);

  • сравнение двух проверок, чтобы видеть, как идёт переезд на российские сервисы.

Ограничения

Хочу сразу честно сказать, чего утилита не умеет:

  • проверяется главная страница и несколько внутренних, а не весь сайт;

  • часть сайтов закрыта от ботов даже для браузера, тогда в отчёте будет «не проверено»;

  • проверка по 152-ФЗ идёт по признакам на страницах и не заменяет юриста;

  • совпадения по названию и ФИО в санкционных списках нужно перепроверять руками.

Попробовать

Код открытый: https://github.com/marsilid/suveren

Для Windows есть готовый Suveren.exe в разделе Releases: скачать и запустить двойным кликом, откроется меню. Exe собирается автоматически в GitHub Actions из исходников репозитория, так что его можно проверить. Windows может показать предупреждение SmartScreen: файл не подписан. На других системах:

pip install "suveren[browser] @ git+https://github.com/marsilid/suveren.git"
suveren scan example.ru --browser

Если утилита не узнала какой‑то сервис на вашем сайте, откройте issue “Добавить сервис” на GitHub. Там простая форма, программировать не нужно. Буду рад любым замечаниям в комментариях, особенно от тех, кто разбирается в 152-ФЗ лучше меня.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.