Анализатор CSP
Вставьте значение заголовка Content-Security-Policy, чтобы увидеть каждую директиву, объяснённую простым языком, и каждый риск, помеченный по степени серьёзности — всё в браузере.
Анализатор CSP разбирает и оценивает вашу Content-Security-Policy целиком в вашем браузере. Вставленное значение заголовка никогда не покидает ваше устройство, и ничего не загружается в ArrayKit.
Открыть генератор заголовка CSP
Об инструменте Анализатор CSP
Анализатор CSP берёт значение заголовка Content-Security-Policy и разбивает его на таблицу по директивам, объясняя простым языком, что контролирует каждая директива. Затем он проверяет политику на слабости, тихо сводящие CSP на нет: 'unsafe-inline' и 'unsafe-eval' в источниках скриптов, голые wildcards '*', небезопасные http:-источники, чрезмерно широкую схему data: и недостающее усиление, такое как default-src, object-src 'none', frame-ancestors и base-uri. Каждая находка несёт степень серьёзности, так что вы с первого взгляда видите, плотна политика или дырява. Полезно, когда вы усиливаете сайт, проверяете политику, сгенерированную для вас фреймворком, или отлаживаете, почему report-only CSP всё ещё пропускает встроенные скрипты. Всё разбирается и оценивается на вашем устройстве — вставленный заголовок никогда не загружается.
Возможности
- Разбирает любое значение Content-Security-Policy в чистую таблицу по директивам
- Объясняет каждую директиву (script-src, frame-ancestors, base-uri…) простым языком
- Помечает 'unsafe-inline' и 'unsafe-eval' в источниках скриптов как высокий риск
- Обнаруживает голые wildcards '*' и небезопасные http:-источники
- Предупреждает о недостающих default-src, object-src 'none', frame-ancestors и base-uri
- Присваивает степень серьёзности (высокая / средняя / низкая / OK) каждой находке
- Принимает ввод с именем заголовка 'Content-Security-Policy:' или без него
- Работает целиком в вашем браузере — вставленная политика никогда не покидает устройство
Как использовать Анализатор CSP
- Скопируйте значение заголовка Content-Security-Policy из конфигурации сервера или заголовков ответа
- Вставьте его в анализатор (ведущее имя заголовка необязательно)
- Прочитайте таблицу по директивам, чтобы подтвердить, что разрешает каждая директива
- Проработайте находки, начиная с худших, и ужесточите помеченные директивы
Пример
Ввод
default-src 'self'; script-src 'self' 'unsafe-inline'; object-src 'none'
Результат
HIGH script-src 'unsafe-inline' permits inline scripts
MED frame-ancestors missing — page can be framed (clickjacking)
OK object-src 'none' blocks plugins (recommended)
Анализатор помечает unsafe-inline как высокий риск, отмечает недостающий frame-ancestors и подтверждает object-src 'none'.
Частые ошибки и устранение неполадок
- В политике есть script-src 'self', но встроенные скрипты всё ещё выполняются. — Проверьте наличие 'unsafe-inline' в script-src (или default-src как его запасном варианте). Уберите его и перейдите на nonce или хеши, чтобы выполнялись только ваши встроенные блоки.
- Анализатор предупреждает, что default-src отсутствует. — default-src — запасной вариант для большинства директив выборки. Без него любая директива, которую вы явно не указали, не ограничена — добавьте default-src 'self' или 'none'.
- frame-ancestors помечен, хотя X-Frame-Options задан. — Современные браузеры предпочитают frame-ancestors X-Frame-Options. Добавьте frame-ancestors 'self' или 'none' в CSP, чтобы фреймингом управляла политика.
- Wildcard '*' в источнике отмечен как риск. — '*' разрешает содержимое из любого источника, сводя на нет смысл этой директивы. Замените его конкретными https://-хостами, с которых вы действительно загружаете.
Часто задаваемые вопросы
- Что проверяет анализатор CSP?
- Он разбирает каждую директиву, объясняет, что она контролирует, и помечает распространённые слабости: 'unsafe-inline' и 'unsafe-eval' в источниках скриптов, голые wildcards '*', небезопасные http:-источники, чрезмерно широкую схему data: и недостающие default-src, object-src 'none', frame-ancestors и base-uri.
- Почему 'unsafe-inline' помечен как высокий риск?
- 'unsafe-inline' позволяет выполняться встроенным блокам <script> и атрибутам-обработчикам событий, что и есть тот самый вектор инъекции, который CSP призван блокировать. Он фактически нейтрализует script-src, поэтому анализатор считает его находкой высокой серьёзности и предлагает вместо него nonce или хеши.
- Нужно ли включать имя заголовка 'Content-Security-Policy:'?
- Нет. Вы можете вставить либо полную строку заголовка, либо только значение политики. Анализатор автоматически убирает ведущий префикс 'Content-Security-Policy:' или 'Content-Security-Policy-Report-Only:' перед разбором.
- Почему анализатор предупреждает о недостающем frame-ancestors?
- Без frame-ancestors любой сайт может встроить вашу страницу в iframe, открывая путь для clickjacking. frame-ancestors — современная замена X-Frame-Options, поэтому анализатор рекомендует добавить frame-ancestors 'self' или 'none'.
- Проверяет ли это, что моя политика синтаксически безупречна?
- Он сосредоточен на защищённости, а не на строгой грамматике. Он обрабатывает распространённые формы, принимаемые браузерами — директивы через точку с запятой с источниками через пробел, — и указывает на рискованные источники и недостающее усиление, а не придирается к пробелам.
- Отправляется ли вставленный мной заголовок CSP куда-либо?
- Нет. Анализатор CSP разбирает и оценивает политику целиком в вашем браузере. Вставленное значение заголовка остаётся на вашем устройстве и никогда не загружается в ArrayKit.
Связанные инструменты
Все инструменты ArrayKit