Перейти к основному содержанию

Генератор CSP

Создавайте значение заголовка Content-Security-Policy на основе структурированных полей директив (default-src, script-src, style-src, img-src и другие) плюс готовый к вставке meta-тег.

Ввод

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

Откуда могут загружаться скрипты.

Откуда могут загружаться таблицы стилей.

Откуда могут загружаться изображения.

Откуда могут загружаться шрифты.

Источники, разрешённые для соединений fetch/XHR/WebSocket.

Откуда могут загружаться вложенные контексты просмотра (iframe).

Откуда могут загружаться ресурсы <object>/<embed>/<applet>.

Откуда могут загружаться источники аудио/видео.

Какие родительские источники могут встраивать эту страницу в кадр — защита от clickjacking.

Ограничивает URL, доступные в элементе <base> документа.

Ограничивает URL, которые можно использовать в качестве целевого действия формы HTML.

Автоматически переводит HTTP-запросы страницы на HTTPS.

Вывод

Generated CSP Header Value

Установите это как значение заголовка ответа Content-Security-Policy.

Meta Tag
 
Это было полезно?

Другие способы использовать этот инструмент

REST API

curl -X POST https://api.iotools.cloud/v1/tool/csp-generator \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "defaultSrc": "'self'",
    "scriptSrc": "'self' https://cdn.example.com",
    "styleSrc": "",
    "imgSrc": "'self' data:",
    "fontSrc": "",
    "connectSrc": "",
    "frameSrc": "",
    "objectSrc": "",
    "mediaSrc": "",
    "frameAncestors": "",
    "baseUri": "",
    "formAction": "",
    "upgradeInsecure": ""
  }'

Подставьте свой собственный ключ из аккаунта. Поля инструмента — это тело запроса, без обёртки.

Спросите у ИИ-агента

Use the IOTools `csp-generator` tool (CSP Generator) on this input:

YOUR_INPUT_HERE

Вставьте это любому агенту, подключённому к MCP-серверу IOTools, и добавьте свой ввод.

Виджет для встраивания

<iframe
  src="https://iotools.cloud/embed/csp-generator/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="Генератор CSP — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

Вставьте это на свою страницу — бесплатно, без ключа, нужна лишь обратная ссылка.

Стоимость вызова API/MCPОт 5 кредитов
Нужно больше кредитов?Посмотреть тарифы

Также доступно через

Руководства

Что такое Content-Security-Policy?

Content-Security-Policy (CSP) — это заголовок ответа HTTP, который сообщает браузеру, какие именно источники скриптов, стилей, изображений, шрифтов и других ресурсов разрешено загружать странице. Это одна из наиболее эффективных защит от Cross-Site Scripting (XSS): даже если злоумышленнику удастся внедрить тег <script> на вашу страницу через поле комментария или неочищенные данные, хорошо настроенный CSP предотвратит выполнение этого скрипта (или загрузку с домена злоумышленника с самого начала), потому что он не соответствует ни одному разрешённому источнику. CSP также блокирует clickjacking (через frame-ancestors), ограничивает внедрение тега <base> и может заблокировать, куда разрешены формы отправки. Этот инструмент создаёт значение заголовка CSP на основе структурированных полей директив, поэтому вам не нужно запоминать синтаксис или рисковать опечаткой, которая тихо отключит политику.

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

  1. Заполните список источников для каждой директивы, которую хотите ограничить — например, default-src с 'self', или script-src с 'self' https://cdn.example.com. Разделите несколько источников пробелами.
  2. Оставьте директиву пустой, чтобы полностью исключить её из созданного заголовка — пропущенные директивы просто переходят на default-src (кроме frame-ancestors и base-uri, которые никогда не наследуются и должны быть установлены явно).
  3. Включите upgrade-insecure-requests, чтобы браузер автоматически переводил HTTP-запросы ресурсов страницы на HTTPS.
  4. Скопируйте Generated CSP Header Value в заголовок ответа Content-Security-Policy или скопируйте Meta Tag для вставки прямо в <head> вашей страницы.

Поддерживаемые директивы

  • default-src — список источников-заменителей, используемый любой fetch-директивой, которая не установлена явно.
  • script-src — откуда может загружаться/выполняться JavaScript.
  • style-src — откуда могут загружаться таблицы стилей CSS.
  • img-src — откуда могут загружаться изображения.
  • font-src — откуда могут загружаться веб-шрифты.
  • connect-src — источники, разрешённые для соединений fetch, XMLHttpRequest, WebSocket и EventSource.
  • frame-src — откуда могут загружаться вложенные контексты просмотра (<iframe>).
  • object-src — откуда могут загружаться ресурсы <object>, <embed> и <applet>; рекомендуется 'none', так как это устаревшие API плагинов.
  • media-src — откуда могут загружаться источники <audio>/<video>.
  • frame-ancestors — какие источники-родители могут встраивать эту страницу в кадр; основная защита от clickjacking.
  • base-uri — ограничивает URL, доступные в элементе <base>, предотвращая атаки внедрения base-tag.
  • form-action — ограничивает URL, на которые может отправляться <form> HTML на странице.

Типичные значения источников

'self' (один источник), 'unsafe-inline' (позволяет встроенные <script>/<style> — ослабляет защиту от XSS, избегайте когда возможно), 'unsafe-eval' (позволяет eval() — избегайте), конкретный домен (https://cdn.example.com), схема (https:, data:), или * (любой источник — очень разрешающее).

FAQ

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

Должен ли я использовать заголовок или meta-тег? Заголовок HTTP Content-Security-Policy предпочтителен — он применяется до разбора любого HTML и поддерживает директивы (такие как frame-ancestors и report-uri), которые не может применять тег <meta>. Используйте meta-тег только когда вы не можете контролировать заголовки ответа сервера.

В чём разница между default-src и установкой каждой директивы отдельно? default-src — это заменитель: любая fetch-директива, которую вы оставите пустой, наследует его. Установка только default-src 'self' — это разумная минимальная базовая конфигурация, но явные директивы дают вам более точное управление для каждого типа ресурса.

Конфиденциальность

Всё работает в вашем браузере — значения директив, которые вы вводите, никогда не отправляются на наши серверы.

cspcontent security policyhttp headerxssweb securitymeta tagweb development

Нравятся инструменты? Уберите рекламу.

Один платёж навсегда убирает всю рекламу с вашего аккаунта. Без подписки, без слежки.