HTTP CSP default-src Directive

Die Content-Security-Policy default-src Direktive definiert die Fallback-Policy für alle Fetch-Direktiven. Sie setzt globale Erlaubnisse für Scripts, Styles, Images, Fonts, Connections und andere Ressourcen wenn keine spezifischere Direktive gesetzt ist. Fundamentale Basis jeder CSP-Konfiguration.

Typ

CSP Fetch-Direktive

Syntax

Die Direktive akzeptiert eine Whitelist vertrauenswürdiger Quellen als globalen Standard.

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

Direktiven

Die default-src Direktive verwendet Standard-CSP-Quellausdrücke und wirkt als Fallback für ungesetzte Fetch-Direktiven.

'none'
Verbietet alle Ressourcen-Loads. Strengste Policy, erfordert explizite Erlaubnis für jeden Ressourcen-Typ.
'self'
Erlaubt Ressourcen nur vom gleichen Origin. Standard für Single-Origin-Anwendungen ohne externe Dependencies.
https:
Erlaubt alle HTTPS-Ressourcen. Erzwingt Verschlüsselung ohne Einschränkung auf spezifische Domains.
https://cdn.example.com
Domain-Whitelisting. Erlaubt Ressourcen von spezifischen vertrauenswürdigen Hosts.
data:
Erlaubt Data-URLs für inline Ressourcen. Sicherheitsrisiko für Scripts, akzeptabel für Images und Fonts.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für die default-src Direktive.

Beispiel 1 Strikte Self-Only Policy

http
HTTP/1.1 200 OK
Content-Security-Policy: default-src 'self'

<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="/css/app.css">
  <!-- Erlaubt: same-origin -->
  <link rel="stylesheet" href="https://fonts.googleapis.com/css">
  <!-- Blockiert: external origin -->
</head>
<body>
  <img src="/images/logo.png">
  <!-- Erlaubt: same-origin -->
  <script src="https://cdn.example.com/analytics.js"></script>
  <!-- Blockiert: external origin -->
</body>
</html>

Beispiel 2 Default mit spezifischen Overrides

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

<script src="https://cdn.example.com/app.js"></script>
<!-- Erlaubt durch script-src Override -->

<img src="https://cdn.example.com/logo.png">
<!-- Blockiert: default-src 'self', kein img-src Override -->

<script>
  fetch('https://api.example.com/users');
  // Erlaubt durch connect-src Override
</script>

Spezifische Direktiven überschreiben default-src für ihren Ressourcen-Typ.

Beispiel 3 Deny-All mit Whitelisting

http
Content-Security-Policy: default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://images.example.com; connect-src 'self' https://api.example.com

{
  "status": "ok",
  "csp": "deny-all-by-default"
}

Zero-Trust-Ansatz: Alles verboten außer explizit erlaubten Ressourcen-Typen und Quellen.

CSP Fallback Resolution Flow

CSP default-src Fallback-Mechanismus

Vorteile für die Systemarchitektur

  • Defense-in-Depth Foundation: Setzt sichere Grundlinie für alle Ressourcen-Typen mit minimalem Konfigurationsaufwand
  • Fallback-Sicherheit: Verhindert versehentliche Lücken durch vergessene spezifische Direktiven durch globalen Default
  • Progressive Enhancement: Ermöglicht Start mit restriktiver default-src und schrittweises Lockern durch spezifische Direktiven

Spezifikation

Content Security Policy Level 3 – W3C Working Draft https://www.w3.org/TR/CSP3/#directive-default-src

Weitere Spezifikationen

Content-Security-Policy Header, CSP script-src Directive