Исправления по итогам аудита безопасности и поддерживаемости.
- Изоляция доступа между аккаунтами. Ключ хранения токена включает отпечаток секрета: клиент, знающий только публичный идентификатор (client_id или Click.ru account_id), больше не получает из общего кэша чужой токен. Ротация секрета также не переиспользует старый токен.
- Ограничения загрузки креативов в сетевом режиме. Чтение файлов с диска сервера выключено; адреса для загрузки по ссылке проверяются — внутренние диапазоны и уводящие туда перенаправления блокируются, разрешены только http и https, размер ответа ограничен. Управление: VK_ADS_ALLOW_LOCAL_FILES, VK_ADS_ALLOW_PRIVATE_NETWORK.
- Проверка токена шлюза выполняется за постоянное время.
- Хранилище токенов вынесено в отдельный модуль, добавлено вытеснение по сроку и лимиту.
- Версия сервера берётся из package.json.
- Тесты: 54 → 110 (HTTP-транспорт, хранилище токенов, защита адресов). Типы и тесты запускаются на каждый pull request.