devopscodepro
Язык
Анализ выполняется в вашем браузере. Загрузка по URL — запрос страницы с нашего сервера.

CSP-анализатор

Разбор Content-Security-Policy с оценкой: небезопасные директивы, недостающие защиты, устаревший синтаксис.

загрузка означает запрос страницы с нашего сервера и чтение её заголовка CSP
вставьте значение заголовка или полную строку Content-Security-Policy:
статический анализ текста политики — так её интерпретирует браузер

Как читать Content-Security-Policy

Вставьте политику — или загрузите её по URL — и каждая директива будет разобрана и оценена так, как её интерпретируют браузеры. Находки покрывают классические дыры: unsafe-inline, unsafe-eval, wildcard, data: в источниках скриптов и просто отсутствующие защитные директивы.

Анализ выполняется в вашем браузере; только режим загрузки по URL просит наш сервер открыть страницу и прочитать её заголовок.

У меня есть nonce и unsafe-inline. Это поломка?

Нет. При наличии nonce или хеша современные браузеры полностью игнорируют unsafe-inline — он оставлен только ради очень старых. Инструмент помечает его как legacy-фолбэк, а не как дыру, чем он и является.

С чего начинать политику?

Отдавайте Content-Security-Policy-Report-Only с default-src 'self' и собирайте нарушения. Чините или подписывайте nonce то, что всплывает, дождитесь тишины в отчётах и переносите ту же политику в применяющий заголовок. Строгая политика сразу в enforcement — это способ сломать сайт в три часа ночи.

Почему предупреждение об отсутствии base-uri?

Потому что внедрённый тег <base> переписывает все относительные URL на странице, включая источники скриптов, превращая небольшую HTML-инъекцию в выполнение кода. base-uri 'none' ничего не стоит и закрывает это.

Сливаются ли дублирующиеся директивы?

Нет — браузеры учитывают первое вхождение и игнорируют остальные. Политика, собранная конкатенацией строк, часто получает две директивы script-src, где вторая, более строгая, не делает вообще ничего.

Смежные инструменты: Security-заголовки, HTTP-заголовки и Аудит SSL / TLS.