Веб и безопасность приложений

Динамическое доверие CSP

Определение

Динамическое доверие CSP (strict-dynamic) — выражение политики, разрешающее допущенному по nonce или хешу скрипту подгружать зависимости через созданные им самим элементы script. Перечисленные рядом адреса узлов, self и unsafe-inline на такую загрузку уже не влияют.

Также ищут: CSP strict-dynamic · strict-dynamic · динамическая загрузка скриптов CSP

Зачем это знать

Политика переносит существенную часть решения на код загрузчика. Если недоверенные данные управляют адресом создаваемого им скрипта, один правильно выданный nonce не обеспечивает безопасную загрузку.

Связи из словаря

Карта понятия

Доказательная часть

Что подтверждено

  1. При strict-dynamic скрипт, допущенный по nonce или хешу, может загружать зависимости через программно созданные элементы script, не вставленные HTML-парсером. Для таких запросов не требуется перечислять каждый узел зависимости в списке политики.

    Граница применимости: Проект CSP Level 3 от 13 августа 2026 года, 6.7.1.1 и пояснение 8.2. Рассматривается допускающая этот механизм эффективная директива скриптов; отдельные блокирующие политики применяются независимо.

  2. При strict-dynamic в списке для загрузки скриптов записи узлов, схем, self и unsafe-inline не дают прежнего допуска. Nonce и хеши продолжают учитываться; присутствующий рядом адрес CDN не является дополнительным ограничением программно создаваемых загрузок этой ветви.

    Граница применимости: Проект CSP Level 3 от 13 августа 2026 года, 6.7.1.1, 6.7.3.2 и пояснение 8.2. Не распространяет действие strict-dynamic на изображения, стили или произвольные другие ресурсы.

  3. В примере CSP 3 элемент script, созданный через document.createElement и добавленный в документ, не считается вставленным парсером. Элемент, созданный через document.write, считается вставленным парсером: одна динамическая генерация текста HTML не даёт ему того же допуска strict-dynamic.

    Граница применимости: Проект CSP Level 3 от 13 августа 2026 года, 6.7.1.1 и пример 8.2. Сравниваются указанные способы вставки без подходящего собственного nonce, хеша или иного независимого допуска.

  4. Если злоумышленник управляет адресом скрипта, который разрешённый загрузчик создаёт вне HTML-парсера, strict-dynamic допускает загрузку по такому адресу. Поэтому источник адресов зависимостей и места программного создания скриптов требуют отдельной проверки.

    Граница применимости: Проект CSP Level 3 от 13 августа 2026 года, предупреждение 8.2. Условие — управление адресом программно создаваемого скрипта; правило не утверждает возможность такого управления в любом приложении.

  5. Для запроса скрипта, вставленного парсером, ветка strict-dynamic возвращает запрет, если до неё не прошла проверка nonce или подходящих данных целостности. Один адрес узла в том же списке не спасает такой запрос.

    Граница применимости: Проект CSP Level 3 от 13 августа 2026 года, 6.7.1.1. Речь о результате этой директивы в модели CSP 3 и о запросе без указанного предварительного допуска, а не о любых способах запуска программы.

Граница терминов

Не путать

Динамическое доверие CSP Одноразовое значение CSP (nonce)

Nonce может допустить исходный загрузчик. strict-dynamic меняет последующий допуск программно создаваемых зависимостей, поэтому проверка одного значения nonce не оценивает адреса, которые выберет код.

Динамическое доверие CSP Разрешённые адреса исходящих запросов

strict-dynamic регулирует исполнение и загрузку скриптов браузером. Список исходящих адресов сервера относится к другому участнику и не возникает из браузерной политики.

Перед спецификацией

Что проверить

  1. Укажите эффективную директиву и поддержку модели CSP 3.
  2. Назовите исходный скрипт, допущенный по nonce или хешу.
  3. Проследите программное создание зависимостей.
  4. Различайте создание элемента и вставку через document.write.
  5. Не считайте адрес CDN действующим ограничением этой ветви.
  6. Проверьте, кто управляет адресами зависимостей.
  7. Учитывайте остальные блокирующие политики и ограничения загрузки.
Открытые основания

Первоисточники

  • Стандарт2
  • Документация1
  • Первичная спецификация
    Content Security Policy Level 3 World Wide Web Consortium · W3C Working Draft, 13 August 2026 · проверено

    Прочитана сохранённая локальная HTML-копия. Алгоритмы разделов 6–7 отделены от ненормативных примеров раздела 8; редакция проекта не означает проверку поддержки каждого браузера.

    Утверждения: 01 · 02 · 03 · 04 · 05

  • Первичная спецификация
    Content Security Policy Level 3 World Wide Web Consortium · W3C Working Draft, 5 May 2026 · проверено

    Определяет CSP directives, source lists, nonce-source и browser enforcement для загрузки и исполнения content.

  • Официальная документация
    Server Side Request Forgery Prevention Cheat Sheet OWASP Foundation · OWASP Cheat Sheet Series, checked 30 August 2026 · проверено

    Описывает SSRF, allowlist destinations, IP/domain validation, DNS risks и запрет автоматических redirects.

Карта знаний

Связанные понятия

Из знания — в навык

Курсы по теме

Подтвердите действие