Spec-Zone.ru › HTTP

CSP: Источники

Значения источников CSP

Директивы заголовка HTTP Content-Security-Policy (CSP), которые указывают источник, из которого могут загружаться ресурсы, могут использовать любое из перечисленных ниже значений. К соответствующим директивам относятся директивы fetch, а также другие, перечисленные ниже.

Источники

<host-source>

Хост в интернете по имени или IP-адресу. Схема URL, номер порта и путь являются необязательными. Можно использовать подстановки ('*') для поддоменов, адреса хоста и номера порта, что указывает на то, что все допустимые значения каждого из них являются допустимыми. При сопоставлении схем разрешены безопасные обновления (например, указание http://example.com будет соответствовать https://example.com). Примеры:

  • http://*.example.com: Соответствует всем попыткам загрузки с любого поддомена example.com. Также соответствует ресурсам https.
  • mail.example.com:443: Соответствует всем попыткам загрузки с порта 443 на mail.example.com.
  • https://store.example.com: Соответствует всем попыткам доступа к store.example.com с использованием https:.
  • *.example.com: Соответствует всем попыткам загрузки с любого поддомена example.com.
  • https://*.example.com:12/path/to/file.js: Соответствует всем попыткам загрузки с любого поддомена example.com с использованием https: на порту 12, и только если путь /path/to/file.js.
  • ws://example.com: Соответствует всем попыткам загрузки с example.com с использованием ws:. Также соответствует ресурсам wss.
<scheme-source>

Схема, такая как http: или https:. Двоеточие обязательно. В отличие от других значений ниже, одинарные кавычки не должны использоваться. Вы также можете указать схемы данных (не рекомендуется).

  • data: Разрешает использование data: URL в качестве источника содержимого. Это небезопасно; злоумышленник также может ввести произвольные data: URL. Используйте это экономно и определенно не для скриптов.
  • mediastream: Разрешает использование mediastream: URI в качестве источника содержимого.
  • blob: Разрешает использование blob: URI в качестве источника содержимого.
  • filesystem: Разрешает использование filesystem: URI в качестве источника содержимого.

Примечание: если схема источника отсутствует, используется схема источника документа. Разрешены безопасные обновления, поэтому если документ загружен с использованием https:, то example.com будет соответствовать https://example.com но не http://example.com. Для получения дополнительной информации см. CSP Level 3.

'self'

Ссылается на источник, с которого защищенный документ предоставляется, включая ту же схему URL и номер порта. Обязательно использовать одинарные кавычки. Некоторые браузеры специально исключают blob и filesystem из директив источника. Сайтам, которым необходимо разрешить эти типы контента, можно указать их с помощью атрибута Data.

'unsafe-eval'

Разрешает использование eval() и других небезопасных методов для создания кода из строк. Обязательно использовать одинарные кавычки.

'wasm-unsafe-eval'

Разрешает загрузку и выполнение модулей WebAssembly без необходимости разрешения небезопасного выполнения JavaScript через 'unsafe-eval'. Одинарные кавычки обязательны.

'unsafe-hashes'

Разрешает включение определенных встроенных обработчиков событий. Если вам нужно только разрешить встроенные обработчики событий, а не встроенные элементы <script> или javascript: URL, это более безопасный метод, чем использование выражения unsafe-inline.

'unsafe-inline'

Разрешает использование встроенных ресурсов, таких как встроенные элементы <script>, javascript: URL, встроенные обработчики событий и встроенные элементы <style>. Одинарные кавычки обязательны.

'none'

Ссылается на пустое множество; то есть ни один URL не соответствует. Одинарные кавычки обязательны.

'nonce-<base64-value>'

Список разрешенных встроенных скриптов с использованием криптографического nonce (число, используемое один раз). Сервер должен генерировать уникальное значение nonce каждый раз при передаче политики. Важно предоставить неугадываемый nonce, так как обход политики ресурса в противном случае тривиален. См. небезопасный встроенный скрипт для примера. Указание nonce заставляет современный браузер игнорировать 'unsafe-inline', который все еще может быть установлен для старых браузеров без поддержки nonce.

Примечание: Источник CSP nonce может быть применен только к nonceable элементам (например, у элемента <img> нет атрибута nonce, поэтому нет способа связать его с этим источником CSP).

'<hash-algorithm>-<base64-value>'

Хеш sha256, sha384 или sha512 скриптов или стилей. Это значение состоит из алгоритма, используемого для создания хеша, за которым следует дефис и base64-кодированный хеш скрипта или стиля. При создании хеша исключайте теги <script> или <style>, и обратите внимание, что регистр и пробелы имеют значение, включая ведущие или хвостовые пробелы. В CSP 2.0 хеш-источники могут применяться к встроенным скриптам и стилям. Выражения хеш-источника разрешены в CSP 3.0 для внешних скриптов в script-src директивах. См. страницы script-src и style-src для получения дополнительной информации и примеров.

'strict-dynamic'

Выражение источника strict-dynamic указывает, что доверие, явно предоставленное скрипту, присутствующему в разметке, путем сопровождения его nonce или хешом, должно быть распространено на все скрипты, загруженные этим корневым скриптом. В то же время, любые списки разрешенных значений или выражения источников, такие как 'self' или 'unsafe-inline' игнорируются. См. script-src для примера.

'report-sample'

Требует включения образца нарушающего кода в отчет об ошибке.

Соответствующие директивы

Директивы, к которым относятся вышеуказанные источники, включают:

  • Директивы fetch (все):
    • default-src
    • child-src
    • connect-src
    • font-src
    • frame-src
    • img-src
    • manifest-src
    • media-src
    • object-src
    • prefetch-src
    • script-src
    • script-src-elem
    • script-src-attr
    • style-src, style-src-elem
    • style-src-attr
    • worker-src
  • Директивы документа:
    • base-uri
  • Директивы навигации:
    • navigate-to
    • form-action

© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/Sources

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API