Content Security Policy
Silktide überprüft, ob jede Seite eine Content Security Policy deklariert, eine standardmäßige Sicherheitsmaßnahme, die Browsern mitteilt, aus welchen Quellen Skripte, Bilder und andere Inhalte geladen werden dürfen.
Eine Content Security Policy (CSP) wird als oder als Meta-Tag ausgeliefert, zum Beispiel:
Content-Security-Policy: default-src 'self'; script-src 'self' scripts.example.com
Dieses Beispiel weist den Browser an, Inhalte nur von Ihrer eigenen Domain zu laden, plus Skripte von einem vertrauenswürdigen Host.
Warum das wichtig ist
Ohne CSP lädt eine Seite alles, was ihr geliefert wird. Gelingt es einem Angreifer, ein Skript einzuschleusen – etwa über ein kompromittiertes Drittanbieter-Tag, ein verwundbares Kommentarfeld oder ein gekapertes Werbenetzwerk –, führt der Browser es mit vollem Zugriff auf die Seite aus, einschließlich allem, was Ihre Besucher eingeben. Diese Angriffsart, Cross-Site-Scripting, gehört weiterhin zu den häufigsten Wegen, wie Websites kompromittiert werden.
Eine CSP ist das Sicherheitsnetz auf Browser-Seite: Eingeschleuster Inhalt aus nicht genehmigten Quellen wird schlicht nicht geladen. Sie dokumentiert außerdem, mit welchen Drittanbietern Ihre Seiten kommunizieren, was beim Nachweis der Einhaltung von Datenschutzvorschriften wie der hilft.
So beheben Sie das Problem
- Listen Sie die legitimen Quellen auf, aus denen Ihre Seiten Inhalte laden: Ihre eigene Domain, Ihr , Analytics, Schriftarten und eingebettete Medien.
- Erstellen Sie eine Richtlinie, die nur diese Quellen erlaubt. Beginnen Sie
strikt, z. B.
default-src 'self', und fügen Sie bei Bedarf je Inhaltstyp (script-src,img-src,style-src) spezifische Quellen hinzu. - Konfigurieren Sie Ihren Webserver, Ihre Hosting-Plattform oder Ihr CDN so,
dass die Richtlinie auf jeder Seite als der
Content-Security-Policy-Header gesendet wird. Falls Sie die Header nicht ändern können, funktioniert auch ein<meta http-equiv=\"Content-Security-Policy\">-Tag im Kopfbereich der Seite, der Header ist jedoch vorzuziehen. - Testen Sie vor dem Erzwingen: Senden Sie die Richtlinie zunächst als
Content-Security-Policy-Report-Onlyund beobachten Sie die Browserkonsole auf Inhalte, die blockiert worden wären. Beachten Sie, dass diese Prüfung den erzwingenden Header erwartet; eine reine Report-Only-Richtlinie besteht sie nicht.
So testet Silktide dies
- Lädt jede Seite und erfasst deren HTTP-Header sowie alle
http-equivMeta-Tags in der Seite, die von Browsern gleich behandelt werden. - Sucht an beiden Stellen nach einem
Content-Security-Policy-Wert. - Meldet die Seite, wenn keiner vorhanden ist oder der Wert leer ist.
- Silktide bewertet nicht die Qualität der Richtlinie – nur, dass eine vorhanden ist.
Fehlerbehebung
Ich habe eine Richtlinie gesetzt, aber die Prüfung schlägt trotzdem fehl
Stellen Sie sicher, dass der Header auf genau den gescannten Seiten erscheint – Richtlinien sind manchmal nur für die Startseite oder einen virtuellen Host konfiguriert. Sie können die von einer Seite zurückgegebenen Header in den Entwicklertools Ihres Browsers unter dem Tab Netzwerk einsehen.
Kann eine CSP meine Website beeinträchtigen?
Eine zu strenge Richtlinie kann eigene Skripte oder Styles blockieren. Daher
wird das Testen mit Content-Security-Policy-Report-Only dringend empfohlen –
es meldet Verstöße, ohne etwas zu blockieren.