Content-Security-Policy: Direktive default-src
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit August 2016 browserübergreifend verfügbar.
Die HTTP-Content-Security-Policy (CSP) default-src-Direktive dient als Rückfalloption für die anderen CSP-Fetch-Direktiven. Für jede der folgenden Direktiven, die nicht vorhanden ist, sucht der User-Agent nach der default-src-Direktive und verwendet diesen Wert:
child-srcconnect-srcfont-srcframe-srcimg-srcmanifest-srcmedia-srcobject-srcprefetch-srcscript-srcscript-src-elemscript-src-attrstyle-srcstyle-src-elemstyle-src-attrworker-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'-
Keine Ressourcen dürfen geladen werden. Die einfachen Anführungszeichen sind verpflichtend.
<source-expression-list>-
Eine durch Leerzeichen getrennte Liste von Quell-Ausdruck-Werten. Ressourcen dürfen geladen werden, wenn sie mit einem der gegebenen Quellausdrücke übereinstimmen. Für diese Direktive sind alle Quellausdruckswerte, die in der Syntax der Fetch-Direktive aufgelistet sind, anwendbar.
Beispiele
>Keine Vererbung mit default-src
Wenn andere Direktiven spezifiziert sind, beeinflusst default-src diese nicht. Der folgende Header:
Content-Security-Policy: default-src 'self'; script-src https://example.com
ist gleichbedeutend 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 nur die notwendigen Ressourcen geladen werden können. Um beispielsweise das Laden von Bildern nur aus derselben Herkunft zu erlauben:
Content-Security-Policy: default-src 'none'; img-src 'self'
Allerdings gibt es hier ein Problem. Wenn Sie SVG-Sprites, die in externen Dateien definiert sind, über das <use>-Element einbetten, beispielsweise:
<svg>
<use href="/images/icons.svg#icon"/>
</svg>
werden Ihre SVG-Bilder in Firefox blockiert, wenn Sie eine default-src 'none'-Richtlinie festgelegt haben. Firefox behandelt das SVG nicht als eingebettetes Bild wie andere Browser, daher erlaubt img-src 'self' deren Laden nicht. Sie müssen default-src 'self' verwenden, wenn Ihre externen Sprites in Firefox geladen werden sollen.
Alternativ können Sie, wenn die default-src 'none' Richtlinie zwingend erforderlich ist, die SVG-Sprites im HTML-Dokument inline 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
| Spezifikation |
|---|
| Content Security Policy Level 3> # directive-default-src> |