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

Директивы CSP для скриптов

Определение

Директивы CSP для скриптов — правила политики, которые разделяют проверку JavaScript по способу выполнения кода. За элементы script отвечает script-src-elem, за обработчики событий в атрибутах — script-src-attr, а при их отсутствии проверка переходит к script-src и затем к default-src.

Также ищут: CSP script directives · script-src-elem · script-src-attr

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

Одна разрешающая запись не управляет всеми контекстами JavaScript. Для диагностики отказа нужно сначала назвать вид операции и эффективную директиву, а затем проверять её список.

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

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

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

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

  1. script-src-elem применяется к запросам скриптов и встроенным блокам script; обработчики событий в атрибутах регулирует script-src-attr. Разрешение элемента script не становится разрешением любого обработчика события.

    Граница применимости: Проект CSP Level 3 от 13 августа 2026 года, 6.1.11–6.1.12. Классы проверок в модели документа; речь не о безопасном превращении произвольного атрибута в исполняемый код.

  2. При отсутствии специальной директивы проверки script-src-elem и script-src-attr переходят к script-src, а затем к default-src. Выбирается первая подходящая присутствующая директива, а не объединение разрешений всех трёх списков.

    Граница применимости: Проект CSP Level 3 от 13 августа 2026 года, 6.8.3–6.8.4. Выбор внутри одной политики; несколько отдельных политик проверяются независимо.

  3. Если присутствует script-src-attr, она заменяет script-src для проверки обработчиков событий. Поэтому запрет обработчиков в специальной директиве не смягчается общим unsafe-inline в script-src той же политики.

    Граница применимости: Проект CSP Level 3 от 13 августа 2026 года, 6.1.12, 6.7.3 и 6.8.3. Условие — отдельная применимая директива для атрибутов; не сравнение разных независимо действующих политик.

  4. Значение script-src-elem не используется для проверок исполнения строк, связанных с unsafe-eval, и не является запасной директивой для worker-src. Разрешение обычного элемента script само не подтверждает разрешение этих других способов выполнения.

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

  5. Если специальная директива присутствует и её список не разрешает операцию, это не считается отсутствием директивы. Алгоритм не переходит к более широкому запасному списку только потому, что специальная проверка дала отказ.

    Граница применимости: Проект CSP Level 3 от 13 августа 2026 года, 6.8.3–6.8.4. Различие отсутствующей директивы и присутствующего запрета; названная директива предполагается корректно разобранной.

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

Не путать

Директивы CSP для скриптов Политика безопасности содержимого (CSP)

Внутри политики выбирается применимая директива и её запасной вариант. Между отдельными блокирующими политиками такого выбора нет: каждая сохраняет своё ограничение.

Директивы CSP для скриптов Контекстное кодирование вывода

Выбор директивы отвечает за допуск исполнения, а кодирование — за представление данных в конкретном контексте. Разрешить обработчик события не означает сделать его безопасным местом для непроверенной строки.

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

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

  1. Назовите вид операции: элемент скрипта, обработчик или другой механизм.
  2. Найдите специальную директиву для этого вида.
  3. Используйте запасную только при отсутствии специальной.
  4. Не объединяйте разрешения директив внутри одной политики.
  5. Не путайте присутствующий запрет с отсутствием правила.
  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.

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

    Определяет context-specific output encoding и safe sinks; CSP и WAF рассматривает как дополнительные, а не основные XSS controls.

Карта знаний

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

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

Курсы по теме

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