Content Security Policy (CSP)



circles

Content Security Policy (CSP) – Ein kurzer Überblick

Content Security Policy (CSP) ist eine wichtige Sicherheitsmaßnahme, die Webseiten vor verschiedenen Angriffen wie Cross-Site Scripting (XSS) und Dateninjektionen schützt. Durch die Implementierung von CSP können Webseitenbetreiber genau definieren, welche Inhalte auf ihrer Seite geladen und ausgeführt werden dürfen.

Was ist CSP?

CSP ist ein Sicherheitsmechanismus, der es erlaubt, Richtlinien zu erstellen, die die Quellen für Skripte, Stylesheets, Bilder und andere Inhalte auf einer Webseite einschränken. Diese Richtlinien werden durch HTTP-Header oder Meta-Tags im HTML-Dokument definiert.

Vorteile von CSP

1. Schutz vor XSS-Angriffen: CSP hilft, bösartige Skripte zu blockieren, indem es nur das Laden von vertrauenswürdigen Quellen erlaubt.

2. Reduzierung von Dateninjektionen: Durch die Beschränkung der Inhalte können Angriffe, die versuchen, schädlichen Code in die Webseite einzuschleusen, verhindert werden.

3. Verbesserung der Website-Sicherheit: CSP stärkt die allgemeine Sicherheit der Webseite und erhöht das Vertrauen der Benutzer.

Wie implementiert man CSP?

Um CSP zu implementieren, fügt man einen HTTP-Header in die Serverkonfiguration ein. Ein Beispiel für eine einfache CSP-Richtlinie sieht wie folgt aus:

http

Copy code

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

Diese Richtlinie erlaubt nur das Laden von Inhalten von der eigenen Domain ('self') und Skripten von einer vertrauenswürdigen Quelle.

Nonce-basiert

Eine auf Nonces basierende CSP ist eine Strategie, bei der ein Nonce (eine zufällige Zeichenfolge, die nur einmal verwendet wird) zu einem Skript-Tag hinzugefügt wird und dasselbe Nonce im CSP-Header enthalten ist. Dadurch kann der Browser erkennen, welche Skripte ausgeführt werden dürfen.

Beispiel:

1. Der Server generiert eine zufällige Zahl, z.B. "123456".

2. Der Server fügt diese Zahl in den CSP-Header der HTTP-Antwort ein: Content-Security-Policy: script-src 'nonce-123456';.

3. Der Server fügt diese Zahl auch in einen Skript-Tag in der HTML-Antwort ein: <script nonce="123456">...Skriptinhalt...</script>.

4. Der Browser erhält die HTTP-Antwort und sieht die Zahl im CSP-Header. Er weiß dann, dass jedes Skript mit einer passenden Zahl ausgeführt werden darf.

5. Der Browser parst das HTML und sieht den Skript-Tag mit der Zahl. Da die Zahl mit der im CSP-Header übereinstimmt, erlaubt der Browser die Ausführung des Skripts.

Auf diese Weise, selbst wenn Angreifer Skript-Tags in das HTML einfügen können, kennen sie die Zahl nicht, sodass der Browser ihre Skripte nicht ausführt.

Fazit

Content Security Policy ist ein effektives Werkzeug, um die Sicherheit von Webseiten erheblich zu verbessern. Durch die klare Definition von erlaubten Inhaltsquellen schützt CSP vor einer Vielzahl von Angriffen.