Content-Security-Policy: default-src Direktive
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2016.
Die HTTP Content-Security-Policy
(CSP) default-src
Direktive dient als Fallback für die anderen CSP Fetch-Direktiven. Für jede der folgenden Direktiven, die fehlen, sucht der Benutzeragent nach der default-src
Direktive und verwendet diesen Wert dafür:
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
CSP-Version | 1 |
---|---|
Direktivtyp | Fetch Direktive |
Syntax
Content-Security-Policy: default-src 'none';
Content-Security-Policy: default-src <source-expression-list>;
Diese Direktive kann einen der folgenden Werte haben:
'none'
-
Es dürfen keine Ressourcen geladen werden. Die einfachen Anführungszeichen sind obligatorisch.
<source-expression-list>
-
Eine durch Leerzeichen getrennte Liste von source expression-Werten. Ressourcen dürfen geladen werden, wenn sie mit einem der angegebenen Quellen-Ausdrücke übereinstimmen. Für diese Direktive sind alle in der Fetch-Direktive-Syntax aufgeführten source expression Werte anwendbar.
Beispiele
Keine Vererbung mit default-src
Wenn andere Direktiven angegeben sind, beeinflusst default-src
diese nicht. Der folgende Header:
Content-Security-Policy: default-src 'self'; script-src https://example.com
ist identisch mit:
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 default-src: none
SVG Sprite-Blockierungsproblem
Hinweis: Dieses Problem wurde in Firefox 132 behoben; siehe Bug 1773976.
Beim Erstellen einer CSP können Sie mit default-src 'none'
beginnen, um das Laden aller Ressourcen zu sperren und dann weitere Direktiven hinzufügen, um die Richtlinie zu öffnen, sodass Sie nur die benötigten Ressourcen laden können. Um beispielsweise das Laden von Bildern derselben Herkunft zu erlauben:
Content-Security-Policy: default-src 'none'; img-src 'self'
Hier gibt es jedoch ein Problem. Wenn Sie SVG-Sprites einbetten, die in externen Dateien über das <use>
Element definiert sind, zum Beispiel:
<svg>
<use href="/images/icons.svg#icon"/>
</svg>
werden Ihre SVG-Bilder in Firefox blockiert, wenn Sie eine default-src 'none'
Richtlinie gesetzt haben. Firefox behandelt das SVG nicht als eingebettetes Bild wie andere Browser, daher erlaubt img-src 'self'
nicht deren Laden. Sie müssen default-src 'self'
verwenden, wenn Sie möchten, dass Ihre externen Sprites in Firefox geladen werden.
Alternativ können Sie, wenn die default-src 'none'
Richtlinie eine strenge Anforderung ist, die SVG-Sprites inline in der HTML-Seite einfügen:
<body>
<svg style="display: none">
<symbol id="icon" viewBox="0 0 24 24">
<path d="…" />
</symbol>
</svg>
…
<svg>
<use href="#icon" />
</svg>
</body>
Spezifikationen
Specification |
---|
Content Security Policy Level 3 # directive-default-src |