Веб и безопасность приложений · проверено по источникам

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

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

Также ищут: 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)

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

Контекстное кодирование вывода

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

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

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

  1. Назовите вид операции: элемент скрипта, обработчик или другой механизм.
  2. Найдите специальную директиву для этого вида.
  3. Используйте запасную только при отсутствии специальной.
  4. Не объединяйте разрешения директив внутри одной политики.
  5. Не путайте присутствующий запрет с отсутствием правила.
  6. Проверяйте исполнение строк и рабочие потоки отдельно.
  7. Учитывайте каждую независимо блокирующую политику.
Открытые основания

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

  • Первичная спецификация

    Content Security Policy Level 3

    World Wide Web Consortium · W3C Working Draft, 13 August 2026

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

    Открыть первоисточник
  • Первичная спецификация

    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.

    Открыть первоисточник
Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие