CSP: default-src
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-Direktive Content-Security-Policy
(CSP) default-src
dient als Rückfalloption für die anderen CSP-Fetch-Direktiven. Für jede der folgenden, nicht vorhandenen Direktiven sucht der Benutzeragent nach der default-src
-Direktive und verwendet diesen Wert:
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 |
---|---|
Direktiven-Typ | 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 zwingend erforderlich.
<source-expression-list>
-
Eine durch Leerzeichen getrennte Liste von Quell-Ausdrücken. Ressourcen dürfen geladen werden, wenn sie mit einem der angegebenen Quell-Ausdrücke übereinstimmen.
Quell-Ausdrücke werden als Schlüsselwortwerte oder URL-Muster angegeben: Die Syntax für jedes Quell-Ausdruck ist in CSP-Quellwerte angegeben.
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 dasselbe wie:
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
CSP-Richtlinien empfehlen oft, mit default-src 'none'
zu beginnen, um das Laden aller Ressourcen zu sperren, und dann weitere Direktiven hinzuzufügen, um die Richtlinie zu öffnen und nur die Ressourcen zu laden, die Sie benötigen. Um beispielsweise nur das Laden von Bildern aus derselben Quelle zu erlauben:
Content-Security-Policy: default-src 'none'; img-src 'self'
Es gibt jedoch ein Problem. Wenn Sie SVG-Sprites einbetten, die über das <use>
-Element in externen Dateien 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 festgelegt haben. Firefox behandelt das SVG nicht als eingebettetes Bild wie andere Browser, daher wird img-src 'self'
nicht erlauben, dass sie geladen werden. Sie müssen default-src 'self'
verwenden, wenn Ihre externen Sprites in Firefox geladen werden sollen (siehe Bug 1773976 und dieses CSP-Spec-Problem für weitere Informationen).
Alternativ, wenn die default-src 'none'
-Richtlinie eine harte Anforderung ist, können Sie die SVG-Sprites direkt in die 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 |
Browser-Kompatibilität
BCD tables only load in the browser