Зависимость от зарубежных сервисов: как провести аудит и составить план замены
Утром перестаёт работать форма обратной связи. Выясняется, что капча, которую подключили пять лет назад, больше не загружается для части посетителей, а без неё форма не отправляется. Другая история: интернет-магазин внезапно начинает загружаться по пять секунд, потому что один из внешних скриптов отвечает медленно, а браузер ждёт его, прежде чем показать страницу. В обоих случаях сам сайт исправен, но он зависит от внешнего сервиса, о котором никто не помнил.
У любого современного сайта таких зависимостей десятки. Какие-то критичны, какие-то нет. Задача аудита — найти их все, понять, какие из них могут остановить бизнес, и заранее подготовить замену.
Шаг 1. Составьте полный список
Начните с инвентаризации. Внешние зависимости прячутся в нескольких местах.
- Код страниц: скрипты аналитики, виджеты чатов, капча, карты, видео, шрифты, библиотеки с внешних CDN.
- Серверная часть: API, к которым обращается сайт, — платежи, доставка, SMS, почта, геокодирование, курсы валют.
- Инфраструктура: хостинг, DNS, CDN, хранение файлов, резервные копии.
- Инструменты команды: репозиторий кода, система сборки и развёртывания, менеджер паролей, мониторинг.
- Аккаунты: домен, почта, рекламные кабинеты, аналитика.
Технически часть списка можно собрать автоматически: в инструментах разработчика браузера на вкладке «Сеть» видно все запросы страницы к внешним доменам. Серверные зависимости проще найти в коде и конфигурации — по ключам API и адресам внешних сервисов.
Шаг 2. Оцените каждую зависимость
Для каждого сервиса ответьте на три вопроса.
- Что сломается, если он перестанет работать? Ничего заметного, неудобство или остановка продаж.
- Как быстро можно заменить? Час, неделя или месяц работы.
- Где хранятся данные? Если сервис хранит ваши данные — клиентов, заказы, файлы, — можно ли их выгрузить.
Удобно свести ответы в таблицу и разделить сервисы по уровню риска.
| Сервис | Что сломается | Срок замены | Данные | Риск |
|---|---|---|---|---|
| Хостинг | Весь сайт | Дни | Все | Высокий |
| Платёжный модуль | Оплата | Недели | Транзакции | Высокий |
| Капча на формах | Заявки | Часы | Нет | Средний |
| Шрифты с внешнего CDN | Вид и скорость страницы | Часы | Нет | Низкий |
| Виджет видео | Один блок | Часы | Нет | Низкий |
Шаг 3. Разберитесь с персональными данными
Отдельный вопрос — сервисы, которые получают персональные данные посетителей или клиентов: аналитика с записью сессий, чаты, CRM, сервисы рассылок, формы. Закон о персональных данных (152-ФЗ) содержит требования к месту обработки данных граждан России и к трансграничной передаче. Конкретные обязательства для вашей ситуации стоит уточнить у юриста, но технически важно знать, какие сервисы и куда передают данные. Подробнее о требованиях к сайту — в статье о 152-ФЗ.
Шаг 4. Уберите то, что не нужно
Часто аудит показывает, что часть сервисов не используется. Счётчик аналитики, который поставили для давно закончившейся рекламной кампании. Виджет чата, на который никто не отвечает. Библиотека, которая подключена на всех страницах ради одной анимации. Удаление таких зависимостей — самый дешёвый способ снизить риск и заодно ускорить сайт.
Шаг 5. Перенесите статику к себе
Шрифты, иконки, JavaScript-библиотеки и стили можно хранить на собственном сервере, а не загружать с чужих CDN. Это несколько часов работы, после которых сайт перестаёт зависеть от доступности внешних серверов, а страницы часто начинают грузиться быстрее. Для шрифтов проверьте лицензию: большинство открытых шрифтов разрешают самостоятельное размещение.
Шаг 6. Подготовьте замену критичных сервисов
Для сервисов с высоким риском нужен план: на что меняем, сколько времени займёт, что нужно сделать заранее.
- Хостинг. Актуальная инструкция по развёртыванию и свежая резервная копия, восстановление которой проверено на другом сервере. Тогда переезд — это день работы, а не неделя расследования. Варианты размещения разобраны в статье о выборе хостинга.
- Платежи. Второй платёжный провайдер, подключённый и протестированный заранее, или хотя бы заключённый договор.
- Почта и уведомления. Возможность быстро переключить отправку на другой сервис. Настройки домена для почты — в статье о SPF, DKIM и DMARC.
- Аналитика. Если основной счётчик зарубежный, имеет смысл параллельно вести Яндекс Метрику, чтобы не потерять историю данных при отключении.
Шаг 7. Проверьте доступы и аккаунты
Многие сервисы зарегистрированы на личную почту сотрудника или подрядчика. Если этот человек уйдёт, восстановить доступ может быть невозможно. В ходе аудита для каждого сервиса запишите владельца аккаунта и переведите критичные аккаунты на корпоративную почту.
Пример карты зависимостей
Вот как выглядит результат аудита для условного сайта услуг с личным кабинетом. Таблица заполняется один раз и потом обновляется при каждом изменении.
| Сервис | Для чего | Где подключён | Данные клиентов | План при отказе |
|---|---|---|---|---|
| Хостинг | Сайт и база | Сервер | Да | Развёртывание из копии у второго провайдера за день |
| Почтовый сервис | Письма из форм и кабинета | Сервер | Почта, имя | Переключение на резервный SMTP за час |
| Капча | Защита форм | Страница заявки | Нет | Временное отключение и ограничение частоты отправки на сервере |
| Шрифты | Оформление | Все страницы | Нет | Перенесены на свой сервер |
| Карта | Схема проезда | Контакты | Нет | Статичная картинка со ссылкой |
| Онлайн-чат | Поддержка | Все страницы | Имя, сообщения | Форма обратной связи |
| Аналитика | Статистика | Все страницы | Обезличенные данные | Параллельный счётчик |
Последний столбец — самое ценное. Он превращает абстрактный риск в конкретное действие, которое можно выполнить без паники, когда сервис действительно перестанет работать.
Как не создать новые зависимости
После аудита важно не вернуться к прежнему состоянию через год. Несколько простых правил помогают держать список под контролем.
- Любой новый внешний скрипт или сервис добавляется в карту зависимостей до подключения.
- Для каждого нового сервиса записывается владелец аккаунта, а сам аккаунт регистрируется на корпоративную почту.
- Маркетинговые счётчики и пиксели подключаются через один менеджер тегов, а не вставкой кода в шаблоны, — так их проще найти и убрать.
- Временные сервисы для акций получают дату отключения.
Как часто повторять
Полный аудит — раз в год. Короткая проверка — при каждом крупном обновлении сайта: какие новые внешние скрипты и сервисы появились. Хорошая практика — запретить добавление новых внешних сервисов без записи в общий список зависимостей.
С чего начать на этой неделе
- Откройте главную и страницу заявки, посмотрите внешние запросы в инструментах разработчика.
- Выпишите все сервисы, которые получают данные клиентов.
- Удалите хотя бы один неиспользуемый скрипт.
- Проверьте, на чью почту зарегистрированы домен, хостинг и платёжный кабинет.
Если хотите получить полную карту зависимостей и план замены, мы проводим такой аудит в рамках работ по безопасности: проверяем внешние сервисы, передачу данных и аккаунты и готовим план с приоритетами.
Вопросы и ответы
Нужно ли отказываться от всех зарубежных сервисов?
Не обязательно. Задача аудита — понять, какие сервисы критичны, какие получают персональные данные и как быстро их можно заменить. Решения принимаются по каждому сервису отдельно.
Замедляют ли внешние скрипты сайт?
Часто да. Каждый внешний скрипт — это дополнительный запрос к чужому серверу. Если он отвечает медленно, может задерживаться отображение страницы.
Как часто проводить аудит?
Полный — раз в год, короткую проверку — при каждом крупном обновлении сайта или подключении нового сервиса.
