Заголовки: CSP.default-src
Content-Security-Policy: директива default-src
Базовый уровень Широко поддерживается
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она поддерживается браузерами с августа 2016 года.
Директива Content-Security-Policy (CSP) в HTTP default-src используется как резервное значение для других директив fetch CSP. Для каждой из следующих отсутствующих директив пользовательский агент проверяет наличие директивы default-src и использует её значение:
child-srcconnect-srcfont-srcframe-srcimg-srcmanifest-srcmedia-srcobject-srcprefetch-srcscript-srcscript-src-elemscript-src-attrstyle-srcstyle-src-elemstyle-src-attrworker-src
| Версия CSP | 1 |
|---|---|
| Тип директивы | Директива fetch |
Синтаксис
Content-Security-Policy: default-src 'none'; Content-Security-Policy: default-src <source-expression-list>;
Эта директива может принимать одно из следующих значений:
'none'-
Загрузка ресурсов запрещена. Одинарные кавычки обязательны.
<source-expression-list>-
Разделённый пробелами список значений выражений источника. Ресурсы можно загружать, если они соответствуют хотя бы одному из указанных выражений источника. Для этой директивы применимы любые значения выражений источника, перечисленные в разделе Синтаксис директив fetch.
Примеры
>Отсутствие наследования с default-src
Если указаны другие директивы, default-src на них не влияет. Следующий заголовок:
Content-Security-Policy: default-src 'self'; script-src https://example.com
эквивалентен следующему:
Content-Security-Policy: connect-src 'self';
font-src 'self';
frame-src 'self';
img-src 'self';
manifest-src 'self';
media-src 'self';
object-src 'self';
script-src https://example.com;
style-src 'self';
worker-src 'self'
Проблема Firefox с блокировкой SVG-спрайтов при default-src: none
Примечание: Эта проблема исправлена в Firefox 132; см. ошибку 1773976.
При создании CSP можно начать с default-src 'none', чтобы запретить загрузку всех ресурсов, а затем добавить дополнительные директивы, разрешающие загрузку нужных ресурсов. Например, чтобы разрешить загрузку только изображений с того же источника:
Content-Security-Policy: default-src 'none'; img-src 'self'
Однако здесь есть проблема. Если вы встраиваете SVG-спрайты, определённые во внешних файлах, с помощью элемента <use>, например:
<svg> <use href="/images/icons.svg#icon"/> </svg>
изображения SVG будут заблокированы в Firefox, если у вас задана политика default-src 'none'. В отличие от других браузеров, Firefox не рассматривает SVG как встроенное изображение, поэтому img-src 'self' не позволит загружать такие ресурсы. Чтобы внешние спрайты загружались в Firefox, необходимо использовать default-src 'self'.
Если же политика default-src 'none' является обязательным требованием, можно встроить SVG-спрайты непосредственно в HTML-страницу:
<body>
<svg style="display: none">
<symbol id="icon" viewBox="0 0 24 24">
<path d="…" />
</symbol>
</svg>
…
<svg>
<use href="#icon" />
</svg>
</body>
Спецификации
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari на iOS | Samsung Internet | WebView для Android | WebView на iOS | |
default-src |
25 | 14 | 23 | 15 | 7 | 25 | 23 | 14 | 7 | 1.5 | 4.4 | 7 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy/default-src