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-Content-Security-Policy (CSP)-default-src-Direktive dient als Rückfalllösung für die anderen CSP-Abrufdirektiven. Für jede der folgenden Direktiven, die fehlen, sucht der Benutzeragent nach der default-src-Direktive und verwendet diesen Wert dafür:

CSP-Version 1
Direktivtyp Abrufdirektive

Syntax

http
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 Quellausdruck-Werten. Ressourcen dürfen geladen werden, wenn sie mit einem der angegebenen Quellausdrücke übereinstimmen. Für diese Direktive sind alle der in der Abrufdirektiven-Syntax aufgeführten Quellausdruckswerte anwendbar.

Beispiele

Keine Vererbung mit default-src

Wenn andere Direktiven spezifiziert sind, beeinflusst default-src diese nicht. Der folgende Header:

http
Content-Security-Policy: default-src 'self'; script-src https://example.com

entspricht:

http
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.

Wenn Sie eine CSP erstellen, 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 gleicher Herkunft zu erlauben:

http
Content-Security-Policy: default-src 'none'; img-src 'self'

Hier gibt es jedoch ein Problem. Wenn Sie SVG-Sprites verwenden, die in externen Dateien durch das <use>-Element eingebettet sind, zum Beispiel:

svg
<svg>
  <use href="/images/icons.svg#icon"/>
</svg>

werden Ihre SVG-Bilder in Firefox blockiert, wenn Sie eine default-src 'none'-Richtlinie haben. Firefox behandelt die SVG nicht als eingebettetes Bild wie andere Browser, daher wird img-src 'self' sie nicht laden lassen. Sie müssen default-src 'self' verwenden, wenn Sie möchten, dass Ihre externen Sprites in Firefox geladen werden.

Alternativ, wenn die default-src 'none'-Richtlinie eine zwingende Anforderung ist, können Sie die SVG-Sprites inline in die HTML-Seite einfügen:

html
<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

Siehe auch