Генератор и проверка CSP

Наберите политику, по одной директиве в строке или через точку с запятой. Вы получите заголовок для копирования, таблицу правил, которые на самом деле действуют для скриптов, стилей, изображений и других ресурсов, и предупреждения о значениях, которые ослабляют политику.

Бесплатно Работает в браузере Проверено вторник, 10 ноября 2026 г.

Директивы, например default-src 'self'. Разделяйте их точкой с запятой или переносом строки. Имена директив не чувствительны к регистру.

Режим

Report-Only — заголовок, которым политику проверяют до включения. Название заголовка показано в строке результата.

Результат

Строка заголовка — Скопируйте её в настройки сервера или в конфигурацию заголовков вашего фреймворка.
Проверка — Каждое предупреждение указано под результатом.
Строка заголовка
Действующее правило по ресурсам

Этот инструмент работает в вашем браузере. То, что вы вводите, нам не отправляется.

Как пользоваться

  1. Наберите директивы в поле Политика, по одной в строке, с именами, написанными точно, например script-src.
  2. Выберите Режим: Content-Security-Policy включает политику, а Content-Security-Policy-Report-Only — заголовок, которым её сначала проверяют.
  3. Прочитайте Действующее правило по ресурсам, чтобы увидеть, какая директива покрывает скрипты, стили, изображения и фреймы.
  4. Скопируйте Строка заголовка на сервер и исправьте каждое предупреждение, которое указано под результатом.

Какое правило действует для ресурса

Браузер проверяет каждый вид ресурса по одной директиве. Если её нет, он переходит по цепочке к запасным директивам, и таблица показывает пройденную цепочку. Цепочки взяты из CSP Level 3, раздел 6.8.3.

  • Скрипты: script-src-elem, затем script-src, затем default-src.
  • Встроенные обработчики событий: script-src-attr, затем script-src, затем default-src.
  • Таблицы стилей: style-src-elem, затем style-src, затем default-src. Встроенные атрибуты style следуют той же схеме с style-src-attr.
  • Фреймы: frame-src, затем child-src, затем default-src.
  • Воркеры: worker-src, затем child-src, затем script-src, затем default-src.
  • Изображения, шрифты, медиа, объекты, манифесты и запросы fetch: их собственная директива, затем default-src.

Что читает проверка

Директивы разделяются точкой с запятой, а инструмент принимает и переносы строк. Имя читается до первого пробела и не чувствительно к регистру. Если директива встречается дважды, учитывается первая, а повтор пропускается (CSP Level 3, раздел 2.2.1).

  • Ключевые слова, такие как 'self' и 'none', пишутся в одинарных кавычках. 'none' должен стоять в своём списке отдельно.
  • Nonce — это 'nonce-' и значение в base64. Хеш — это sha256, sha384 или sha512, дефис и значение в base64 (раздел 2.3.1).
  • Запятая не допускается внутри значения директивы, потому что в заголовке она разделяет политики.

Чего проверка не делает

  • Она не открывает страницу и не проверяет политику в браузере. Таблица показывает правило, которое использовал бы браузер, а не то, будет ли ваша страница работать.
  • Она проверяет написание ключевых слов, nonce и хешей, но подробно не проверяет источники в виде узлов и схем.
  • Она не оценивает директивы, которых нет в её списке, например sandbox. Они остаются в строке заголовка без изменений.

Разбор примера: образец политики

В образце политики скрипты используют script-src, потому что script-src-elem отсутствует. У фреймов нет frame-src и child-src, поэтому они переходят к default-src. У воркеров нет worker-src и child-src, поэтому они используют script-src. Директива style-src содержит 'unsafe-inline', и проверка выводит это как одно предупреждение.

Ресурс Проверяется по порядку Правило в действии
Скрипты (элементы script) script-src-elem, script-src, default-src script-src
Фреймы (iframe) frame-src, child-src, default-src default-src
Воркеры worker-src, child-src, script-src, default-src script-src

Частые вопросы

Почему таблица показывает правило для скриптов, которое я не писал?

Ресурс, у которого нет своей директивы, использует ту директиву, к которой переходит. Для скриптов это script-src-elem, затем script-src, затем default-src. Таблица показывает правило, которое использовал бы браузер, поэтому даже без script-src у вас может быть действующее правило.

Что разрешает 'unsafe-inline'?

Он разрешает встроенные скрипты или встроенные стили там, где это покрывает директива. Nonce или хеш в том же списке источников заставляет браузеры игнорировать 'unsafe-inline' (CSP Level 3, раздел 6.7.3.2), поэтому для нужного встроенного кода используйте один из них.

Писать report-uri или report-to?

Используйте report-to. MDN описывает её как директиву, которая заменяет report-uri. Пока report-to поддерживается не везде, MDN советует отправлять обе, а проверка предупреждает, если есть report-uri.

Почему одна из директив отмечена как неизвестная?

Проверка судит только о директивах, которые поставляют браузеры и документирует MDN. Неизвестное имя остаётся в строке заголовка без изменений, но в таблице его нет и оценки ему не дают.

Отправляет ли инструмент мою политику куда-нибудь?

Нет. Заголовок собирается в вашем браузере. Ничего из набранного не отправляется на сервер и не сохраняется, а политика не проверяется ни на одном сайте.

Является ли CSP Level 3 окончательным стандартом?

Пока нет. Текст, которому следует проверка, — рабочий проект W3C от 27 октября 2026 года, документ на пути к рекомендации. Прочитайте последнюю версию, прежде чем полагаться на правило в рабочей политике безопасности.

Источники

Цифры и текст в последний раз проверены вторник, 10 ноября 2026 г..

Мы используем необходимые cookie, чтобы сайт работал. С вашего согласия Google также использует рекламные cookie, чтобы показывать персонализированную рекламу. Если вы откажетесь, реклама всё равно будет показываться, но не будет персонализированной.