PassFront
  1. PassFront
  2. База знаний
  3. Заголовки и политики браузера

Что такое Content Security Policy и как её внедрять?

Заголовки и политики браузера

Content Security Policy (CSP) — заголовок ответа, в котором сайт перечисляет, откуда браузеру разрешено загружать скрипты, стили, картинки и другие ресурсы. Всё остальное браузер блокирует.

Основные директивы

  • default-src 'self' — по умолчанию только свой домен.
  • script-src — источники скриптов.
  • style-src, img-src, connect-src (для fetch и WebSocket), frame-ancestors.
  • 'nonce-...' или 'sha256-...' — разрешить конкретный inline-скрипт, не открывая 'unsafe-inline'.
Content-Security-Policy:
  default-src 'self';
  script-src 'self' 'nonce-r4nd0m';
  img-src 'self' data: https://cdn.example.com;
  connect-src 'self' https://api.example.com;
  frame-ancestors 'self'

Как внедрять безопасно

  1. Начать с Content-Security-Policy-Report-Only: браузер ничего не блокирует, но присылает отчёты о нарушениях.
  2. Разобрать отчёты, убрать inline-скрипты, добавить нужные источники.
  3. Включить боевой режим.

Ограничения

CSP снижает ущерб от XSS, но не заменяет экранирование. Слишком широкие правила (*, unsafe-inline, unsafe-eval) сводят защиту к нулю.

Коротко для собеседования

CSP — белый список источников ресурсов. Внедряют через Report-Only, используют nonce вместо unsafe-inline.

Другие вопросы раздела