HTTP Content-Security-Policy Header

Der HTTP-Header Content-Security-Policy ist ein Response-Header, der eine Content Security Policy definiert. Er schützt Webanwendungen vor Cross-Site-Scripting (XSS), Clickjacking und anderen Code-Injection-Angriffen durch Whitelisting vertrauenswürdiger Content-Quellen.

Typ

Response-Header

Syntax

Der Header enthält eine oder mehrere durch Semikolon getrennte Direktiven mit ihren Werten.

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

Direktiven

CSP bietet zahlreiche Direktiven zur Kontrolle verschiedener Content-Typen und Verhaltensweisen.

default-src
Fallback für alle Fetch-Direktiven. Definiert erlaubte Quellen für Ressourcen, wenn keine spezifischere Direktive gesetzt ist.
script-src
Definiert erlaubte Quellen für JavaScript. Kritisch zur Verhinderung von XSS-Angriffen durch Kontrolle ausführbarer Scripts.
style-src
Definiert erlaubte Quellen für CSS-Stylesheets. Verhindert Injection bösartiger Styles.
img-src
Definiert erlaubte Quellen für Bilder. Kontrolliert, von wo Bilder geladen werden dürfen.
connect-src
Definiert erlaubte Ziele für XMLHttpRequest, WebSocket und EventSource. Wichtig für API-Aufrufe in Single-Page-Applications.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für den Content-Security-Policy-Header.

Beispiel 1 Restriktive Policy

http
HTTP/1.1 200 OK
Content-Type: text/html
Content-Security-Policy: default-src 'none'; script-src 'self'; style-src 'self'; img-src 'self' data:

<!DOCTYPE html><html>...

Beispiel 2 API mit CDN

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

<!DOCTYPE html>...

Beispiel 3 Entwicklungsumgebung

http
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; connect-src 'self' ws://localhost:3000

CSP Violation Reporting Flow

CSP Violation Detection und Reporting

Vorteile für die Systemarchitektur

  • XSS-Prävention: Verhindert Ausführung von Schadcode durch strikte Kontrolle erlaubter Script-Quellen
  • Defense in Depth: Zusätzliche Sicherheitsebene selbst wenn Input-Validierung fehlschlägt oder Injection-Schwachstellen existieren
  • Compliance: Erfüllt Sicherheitsanforderungen für PCI-DSS, GDPR und andere Standards durch nachweisbare Content-Kontrolle

Spezifikation

Content Security Policy Level 3 – W3C Working Draft https://www.w3.org/TR/CSP3/

Weitere Spezifikationen

Permissions-Policy Header, Access-Control-Allow-Origin Header, Sec-Fetch-Site Header