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'-
Требует включения образца нарушающего кода в отчет об ошибке.
Соответствующие директивы
Директивы, к которым относятся вышеуказанные источники, включают:
© 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