Одноразовое значение разрешает выбранные элементы внутри политики; область остальных директив и режим блокировки проверяются отдельно.
Политика безопасности содержимого (CSP)
Определение
Политика безопасности содержимого (CSP) — это набор правил, по которым браузер разрешает или блокирует загрузку и выполнение содержимого страницы. Правила записывают директивами со списками источников, а саму политику включают в блокирующем режиме или только для отчётов.
Также ищут: Content Security Policy · CSP · Content-Security-Policy · политика загрузки контента
Зачем это знать
Хорошая политика уменьшает последствия внедрения кода и создаёт отчёты, но слишком широкий список и опасные директивы оставляют пути обхода.
Карта понятия
Что подтверждено
Политика CSP задаёт директивы и списки источников, по которым браузер разрешает или блокирует загрузку и выполнение содержимого.
Граница применимости: Модель применения CSP Level 3.
CSP полезна как дополнительный уровень защиты, но не заменяет контекстное кодирование вывода, безопасные API и исправление источника внедрения.
Граница применимости: Различие между CSP и основными мерами защиты от XSS.
Политика в Content-Security-Policy-Report-Only наблюдает нарушения, но сама не блокирует действие. Наличие отчётов доказывает работу наблюдения, а не включение блокировки этой политикой.
Граница применимости: Различие применения политики и режима отчётов в принятой редакции CSP Level 3.
Когда к документу применяются несколько блокирующих политик CSP, действие должно удовлетворять каждой применимой политике. Более разрешающая дополнительная политика не отменяет запрет другой.
Граница применимости: Совместное применение политик CSP; режим отчётов не становится блокирующим.
default-src служит запасным ограничением для предусмотренных директив загрузки, но не заменяет все директивы CSP. Например, ограничения на встраивание страницы через frame-ancestors задают отдельно.
Граница применимости: Связи директив в принятой редакции CSP Level 3; полный набор ограничений выбирается под документ.
Не путать
CSP ограничивает исполнение содержимого. Безопасное помещение значения в конкретный контекст устраняет опасную интерпретацию в этом месте.
Что проверить
- Отделите политику блокировки от режима отчётов.
- Проверьте все одновременно применённые политики.
- Настройте нужные директивы загрузки и исполнения.
- Отдельно задайте ограничения на встраивание страницы.
- Согласуйте политику с разрешёнными элементами документа.
- Исправляйте опасные места вывода независимо от отчётов CSP.
- Проверяйте блокировку контролируемым безопасным примером в целевом браузере.
Первоисточники
- Content Security Policy Level 3
Определяет CSP directives, source lists, nonce-source и browser enforcement для загрузки и исполнения content.
- Cross Site Scripting Prevention Cheat Sheet
Определяет context-specific output encoding и safe sinks; CSP и WAF рассматривает как дополнительные, а не основные XSS controls.
Утверждения: 02
- Content Security Policy Level 3
Прочитана сохранённая локальная HTML-копия. Алгоритмы разделов 6–7 отделены от ненормативных примеров раздела 8; редакция проекта не означает проверку поддержки каждого браузера.
Утверждения: 04
- Input Validation Cheat Sheet
Задаёт раннюю server-side проверку syntax и semantics, allowlist approach и границу с output encoding.