← Alle Guides
🔒 HTTP Security Headers

Content-Security-Policy (CSP) einrichten

CSP definiert, von welchen Quellen der Browser Ressourcen (Scripts, Styles, Bilder, etc.) laden darf. Dies ist der effektivste Schutz gegen XSS-Angriffe.
Risiko: Cross-Site Scripting (XSS): Angreifer koennen schaedlichen JavaScript-Code in Ihre Seite einschleusen.

1. Mit Report-Only starten

Beginnen Sie im Report-Modus, um zu sehen was blockiert wuerde:

# Apache:
Header set Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; report-uri /csp-report"

# Nginx:
add_header Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:;" always;

2. Policy anpassen

Haengige CSP-Konfigurationen:

# Basis (streng):
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com; connect-src 'self'; frame-ancestors 'none'

# Mit Google Fonts + Analytics:
Content-Security-Policy: default-src 'self'; script-src 'self' https://www.googletagmanager.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com

# WordPress (liberal):
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data: https:; connect-src 'self'

3. Auf Enforce umschalten

Wenn keine Fehler mehr im Report auftreten:

# Apache:
Header set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:;"

# Nginx:
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:;" always;

Referenzen & weiterführende Links

CSP Evaluator (Google) MDN: Content-Security-Policy CSP Generator