Prüfpunkt software.csp.schwachKopfzeilen und Einbettung
Wann schützt eine Content-Security-Policy vor eingeschleusten Skripten?
Die Content-Security-Policy, kurz CSP, ist eine Kopfzeile, mit der Ihr Server dem Browser sagt, welche Skripte er auf Ihrer Seite ausführen darf. Alles andere blockiert der Browser. Schützen kann sie nur, wenn sie Skripte gezielt freigibt. Erlaubt sie Skripte direkt im Quelltext, Code aus Zeichenketten oder jede beliebige Quelle, läuft eingeschleuster Code weiter. Die Prüfung liest die Kopfzeile und nennt im Bericht, welche dieser Freigaben darin steht.
Die meisten Richtlinien erlauben Skripte im Quelltext

Laut Web Almanac 2025 von HTTP Archive schicken 21,9 Prozent der Websites eine CSP, und 92 Prozent dieser Kopfzeilen enthalten 'unsafe-inline' bei den Skripten. Eine Nonce steht nur in rund 20 Prozent. Ohne Nonce oder Hash läuft eingeschleuster Code also weiter, obwohl die Kopfzeile vorhanden ist.
Die CSP begrenzt den Schaden eingeschleuster Skripte
Gelangt fremder Code in Ihre Seite, etwa über ein Kommentarfeld, eine Suchfunktion oder eine angegriffene Erweiterung, führt der Browser ihn aus wie Ihren eigenen. Er kann Eingaben in Formularen mitlesen, Zahlungsfelder verändern oder Besucher auf eine andere Seite schicken. Eine Content-Security-Policy setzt dem eine zweite Grenze: der Browser führt nur Skripte aus, die die Richtlinie erlaubt. Die eigentliche Lücke schließt sie nicht, aber sie verhindert, dass eingeschleuster Code läuft.
Gemessen wird, was die Richtlinie für Skripte erlaubt
Die Prüfung liest die Kopfzeile Content-Security-Policy in der Antwort jeder Seite des Laufs und dort die Angabe script-src, ohne sie default-src. Drei Freigaben nennt der Bericht. 'unsafe-inline' erlaubt jedes Skript, das direkt im Quelltext steht, und damit genau die Form, in der eingeschleuster Code meist ankommt. 'unsafe-eval' erlaubt, Code aus Zeichenketten zu erzeugen. Ein Stern oder https: als Quelle erlaubt Skripte von jedem Server, auch von einem, den ein Angreifer betreibt. Der Befund zeigt die Kopfzeile, wie Ihr Server sie geschickt hat. Schickt der Server keine CSP, gehört das zum Prüfpunkt der Sicherheitskopfzeilen.
Nonce, Hash und strict-dynamic geben Skripte einzeln frei
Eine Nonce ist ein Zufallswert, den der Server bei jedem Seitenaufruf neu erzeugt. Er steht in der Kopfzeile und an jedem eigenen Skript; ein eingeschleustes Skript kennt ihn nicht und bleibt blockiert. Ein Hash ist die Prüfsumme eines bestimmten Skripts im Quelltext und eignet sich für Skripte, die sich nie ändern. Mit 'strict-dynamic' dürfen freigegebene Skripte weitere Skripte nachladen, etwa ein Tag-Manager seine Dienste. Steht eine Nonce oder ein Hash in der Richtlinie, beachten heutige Browser 'unsafe-inline' nicht mehr; steht 'strict-dynamic' darin, beachten sie Quellen wie https: nicht mehr. Beides darf deshalb als Rückfall für alte Browser stehen bleiben, und die Prüfung wertet es dann nicht.
Die Umstellung beginnt im Beobachtungsmodus
Eine strenge Richtlinie kann Teile der Seite sperren, die bisher funktionierten, etwa ein Formular oder eine Karte. Deshalb liefert der Server sie zuerst als Content-Security-Policy-Report-Only aus: der Browser meldet dann, was er blockieren würde, und blockiert noch nichts. Sind alle gemeldeten Skripte freigegeben, wird daraus die Kopfzeile Content-Security-Policy. Steht die Beobachtung neben einer schwachen Richtlinie, nennt der Bericht das als eigenen Befund. Wie viel Arbeit die Umstellung macht, hängt vom System ab: viele Content-Management-Systeme und Erweiterungen schreiben Skripte direkt in den Quelltext.
Beispiele
Freigabe für Skripte
Content-Security-Policy: script-src 'self' 'unsafe-inline' https:Content-Security-Policy: script-src 'nonce-q7Xz2LwP9m' 'strict-dynamic'; object-src 'none'; base-uri 'none'
<script nonce="q7Xz2LwP9m" src="/app.js"></script>Der Wert der Nonce ist hier nur ein Beispiel. Der Server erzeugt ihn bei jedem Seitenaufruf neu und setzt denselben Wert an jedes eigene Skript.
So gehen Sie es an
- Lassen Sie Ihre Agentur die Kopfzeile aus dem Bericht lesen: welche der genannten Freigaben steht darin, und welches Skript braucht sie?
- Sie liefert eine strenge Richtlinie mit Nonce und 'strict-dynamic' zuerst als Content-Security-Policy-Report-Only aus und sammelt die Meldungen der Browser.
- Skripte, die bisher direkt im Quelltext stehen, bekommen die Nonce oder ziehen in eine eigene Datei um.
- Sind die Meldungen abgearbeitet, schaltet sie die Richtlinie scharf und entfernt die Beobachtung.
- Lassen Sie die Website danach neu messen. Der Bericht zeigt die Kopfzeile, wie Ihr Server sie jetzt schickt.
Tipps aus der Praxis
- Die Nonce entsteht bei jeder Antwort neu, mit mindestens 128 Bit Zufall.
- Seiten aus dem Zwischenspeicher bekommen einen Hash, weil dort keine neue Nonce entsteht.
- Setzt eine Erweiterung eine zweite Richtlinie, gelten beide. Jede weitere kann nur einschränken.
Mehr zu diesem Thema
Weiter in der Cybersicherheit
- Was kann ein Angriff auf meiner Website anrichten?Kartendaten aus dem Bestellformular, Besucher auf Betrugsseiten, 20 Millionen Pfund Bußgeld: echte Fälle mit Quelle und dem Merkmal, das den Weg zeigt.
- Verändert KI die Angriffe auf meine Website?Was Behörden und Lageberichte 2025 und 2026 über KI bei Angriffen messen, was Umfragen nur vermuten, und was sich an der Abwehr einer kleinen Website ändert.
- Wehrt Ihre Website das Abtasten nach Schwachstellen ab?Am Ende der Prüfung ruft der Messkern typische Scan-Adressen ab und sieht nach, ob Ihr Server danach sperrt. Das Ergebnis steht als Hinweis im Bericht.
- Warum brauchen auch Fehlerseite und Skripte die Sicherheitskopfzeilen?Sicherheitskopfzeilen schützen nur die Antworten, die sie enthalten. Die Prüfung vergleicht Startseite, Fehlerseite und Skripte Ihrer Website.
Dieser Prüfpunkt gehört zur Cybersicherheit, Unterthema Kopfzeilen und Einbettung. Gemessen wird er im Prüfbereich Aktualität. Was die Prüfung insgesamt leistet, zeigt die Leistungsseite; wie ein Ergebnis zustande kommt, erklärt das Prüfverfahren.




