Веб-безопасность

Генератор CSPразберите правило до публикации

Редактируйте текст и директивы, затем изучайте заголовок, предупреждения и один пример запроса.

Генератор CSP

Текст политики

Редактор директив

Текущий результат

Проверка одного запроса

Источник не подходит в этом статическом примере

Ни один моделируемый источник не подходит к этому URL.

Действующая директива: script-src · использован запасной вариант

Замечания к политике

Моделируемых замечаний нет. Это не разрешение на публикацию.

Разобранные директивы

Показано 6 из 6 директив

  • default-src 'self'
  • script-src 'self'
  • img-src 'self' data:
  • object-src 'none'
  • base-uri 'self'
  • frame-ancestors 'none'

Политика, домены и примеры URL остаются в браузере; сетевые запросы не отправляются.

Report-Only наблюдает возможные нарушения, но не блокирует. Для получения отчётов нужен настроенный адрес; эта страница не отправляет и не принимает их.

Директив: 6 · замечаний: 0

Когда сторонний скрипт перестаёт загружаться, Генератор CSP показывает, какая директива применяется. В примере страница example.com запрашивает скрипт cdn.example.com и намеренно получает отказ из-за script-src self. Это не готовая политика для продакшена.

Этот Генератор CSP-заголовка объединяет текст и редактор директив в один черновик. Проверка CSP показывает причины замечаний, а не выдаёт условный балл за доказательство безопасности.

Зачем нужен Генератор CSP

Увидеть применяемый источник

Генератор CSP выбирает директиву для типа ресурса и применяет default-src только как запасной вариант для загрузки. Скрипт CDN из примера не подходит к script-src self; точный адрес CDN меняет лишь этот статический вывод.

Запрос скрипта CDN сопоставляется со списком источников; показаны отдельные пути отказа и совпадения.

Разбирать замечания по директивам

Генератор заголовка Content-Security-Policy должен объяснять, что none рядом с другими источниками игнорируется, а из повторных директив действует первая. Report-Only отдельно описан как наблюдение, а не фактическая блокировка.

Директивы превращаются в карточки замечаний, режим применения отделён от Report-Only.

Читайте основание перед копированием

01

Начните с намеренного отказа

Страница example.com запрашивает скрипт cdn.example.com. Посмотрите на script-src и указатель запасной директивы, затем замените адреса своими.

02

Разделяйте режим и пример nonce

Report-Only меняет имя заголовка, но ничего не блокирует. Без report-to или report-uri нет адреса для отчётов. Сгенерированный nonce не вставляется в черновик.

03

Экспортируйте только свежий результат

Автопроверка ждёт 350 мс после изменения. Если отключить её, используйте кнопку или Ctrl/Cmd + Enter. Любое редактирование сразу выключает копирование и скачивание; очистка и загрузка примера требуют просмотра и допускают одну отмену.

Что видно в черновике

Текст и редактор одной политики

Генератор CSP принимает значение или одну полную строку CSP-заголовка. Неизвестные директивы и порядок повторов сохраняются; ошибочный текст остаётся для исправления.

Точные объяснения рисков

Проверка CSP отмечает unsafe-inline, unsafe-eval, *, широкие схемы, отсутствующие базовые ограничения и смешение none. Источники не удаляются автоматически: действующая страница может от этого сломаться.

Одна внешняя загрузка

Пара абсолютных HTTP(S) URL даёт применяемую директиву и цепочку запасных правил. Путь, strict-dynamic и контекст nonce приводят к честному «неизвестно». Это не полноценный CSP Analyzer браузера.

Только актуальный заголовок

Форматирование сохраняет порядок и выводит Content-Security-Policy либо Report-Only. После изменения черновика или запроса старые копия и скачивание недоступны до нового расчёта.

Границы локальной проверки

Сайт не сканируется
Этот Генератор CSP не получает страницу, ресурсы или фактические заголовки сервера. Отсутствие замечаний не доказывает безопасность и работоспособность опубликованного приложения.
default-src заменяет не всё
Она служит запасным источником для отсутствующих директив загрузки, но не для base-uri, form-action и frame-ancestors. Несколько политик, перенаправления, встроенный код и различия браузеров не моделируются.
Пример nonce нельзя развернуть как есть
Показанное значение случайно, но сервер должен создавать новое для каждого ответа и ставить одинаковое значение в заголовок и разрешённые элементы.
Report-Only требует адреса отчётов
Content-Security-Policy-Report-Only наблюдает, а не блокирует. Имя report-to должно сопровождаться заголовком Reporting-Endpoints при развёртывании; эта страница не принимает отчёты.
Нет равнозначного meta или конфигурации сервера
Тег meta не передаёт Report-Only и frame-ancestors на равных с HTTP-заголовком. Выводится только текст заголовка, без фрагментов Nginx или Apache.

Вопросы про Генератор CSP

Какие источники CSP берутся в одинарные кавычки, а какие нет?

Ключевые слова self и none, а также nonce и хеши заключаются в одинарные кавычки. Схемы вроде https: и хосты вроде cdn.example.com пишутся без них. Поле не исправляет всё автоматически.

Для чего нужен переключатель report-only?

Он создаёт имя Content-Security-Policy-Report-Only. Политика наблюдает нарушения, не блокируя ресурсы. Реальные отчёты требуют настроенного адреса на сервере.

Можно ли доставить всю политику как мета-тег CSP?

Нет, не полностью. Report-Only и frame-ancestors требуют настоящего HTTP-заголовка ответа, поэтому инструмент выводит именно его.

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

Неуказанные директивы не добавляются. default-src может заменить недостающие правила загрузки, но не base-uri или frame-ancestors.

Отправляет ли сборка заголовка CSP мои хосты куда-либо?

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

Нужен разбор другого случая?

Проверьте черновик: Генератор CSP

Сопоставьте URL ресурса, прочитайте действующую директиву и замечания, затем копируйте только актуальный заголовок.