Eine Content Security Policy legt fest, aus welchen Quellen ein Browser Skripte, Stylesheets, Bilder, Fonts, Frames und Netzwerkverbindungen laden darf. Ihr Hauptnutzen besteht darin, die Möglichkeiten eingeschleuster Inhalte zu begrenzen.
Content Security Policy (CSP): XSS-Risiken und unerwünschte Inhalte begrenzen
Lerne, eine CSP schrittweise einzuführen und Direktiven, Report-Only, Nonces sowie typische Fehler zu verstehen.
Inhalt anzeigen
Mit Beobachtung beginnen
Eine strenge CSP kann eine bestehende Website leicht beschädigen. Erfasse deshalb zuerst alle benötigten First- und Third-Party-Ressourcen und beginne bei Bedarf mit Content-Security-Policy-Report-Only. So lassen sich Verstöße beobachten, ohne Ressourcen sofort zu blockieren.
Der CSP-Generator hilft beim Aufbau einer Ausgangsrichtlinie.
Wichtige Direktiven verstehen
default-src dient als Fallback. script-src und style-src sind besonders relevant, weil ausführbarer Code und Inline-Inhalte häufige Angriffspunkte sind. img-src, font-src, connect-src, frame-src und object-src schränken weitere Fähigkeiten ein. Explizite Ursprünge sind in der Regel besser als breite Wildcards.
frame-ancestors schützt vor unerwünschtem Einbetten, funktioniert aber nur als HTTP-Header und nicht in einer CSP-Meta-Angabe. Auch Report-Only wird über den HTTP-Header ausgeliefert, nicht über <meta>.
Inline-Code gezielt freigeben
'unsafe-inline' schwächt einen wichtigen CSP-Schutz. Wenn Inline-Code unvermeidbar ist, können Nonces oder CSP-Hashes gezielt einzelne Blöcke freigeben. Eine Nonce muss für jede Antwort neu und unvorhersehbar erzeugt werden.
CSP ist Defense in Depth
CSP bereinigt kein unsicheres HTML und repariert keine fehlerhafte Autorisierung. Kombiniere sie mit sicherem Rendering, HTTPS und passenden Security-Headern.
Schrittweise verschärfen
Starte mit Reporting, entferne unnötige Ausnahmen, teste kritische Nutzerwege und aktiviere danach die erzwungene Richtlinie. Prüfe sie erneut, wenn Analytics, Werbung, Fonts oder andere Drittanbieter geändert werden.
War dieser Artikel hilfreich?
Quellen und Referenzen
- W3C — Content Security Policy Level 3 (öffnet in einem neuen Tab)Seite auf Englisch
- MDN — Content Security Policy (CSP) (öffnet in einem neuen Tab)Seite auf Englisch
- OWASP — Content Security Policy Cheat Sheet (öffnet in einem neuen Tab)Seite auf Englisch