So behebst du einen fehlenden Content-Security-Policy (CSP)-Header | Scanthra

Scanthra · 7 Min Lesezeit · Aktualisiert Mai 2026

Mai 2026
TL;DR: Ein fehlender CSP (Content Security Policy)-Header ist der häufigste Befund in Scanthra-Berichten. Er erlaubt es einem einzigen eingeschleusten Skript, beliebigen Code im Browser deiner Besucher auszuführen. Du kannst eine sichere CSP-Starter-Konfiguration in unter 10 Minuten hinzufügen — ohne deine Website zu beeinträchtigen —, indem du sie zuerst im Modus report-only einsetzt.

Was ist der Content-Security-Policy-Header?

CSP ist ein Response-Header, der dem Browser genau sagt, welche Quellen für Skripte, Styles, Bilder und Frames er laden darf. Wenn etwas auf der Seite versucht, ein Skript von einer Domain zu laden, die nicht auf deiner Erlaubnisliste steht, lehnt der Browser es ab. Es ist wie eine Gästeliste für den Türsteher.

Ohne CSP läuft jeder eingeschleuste <script>-Tag — von einem gehackten Plugin, einem Tippfehler in einem Drittanbieter-Widget, einem gespeicherten XSS in einem Kommentar — mit vollem Zugriff auf die Cookies, Formulardaten und Sessions deiner Besucher. Mit einer strikten CSP wird derselbe Angriff still blockiert und protokolliert.

Warum das für ein kleines Unternehmen wichtig ist

Zwei reale Beispiele, die wir wöchentlich in Scanthra-Berichten sehen:

CSP wird außerdem explizit von OWASP (Anwendungssicherheits-Standard) empfohlen, von den meisten Cyber-Versicherungsfragebögen erwartet und ist — für EU-Unternehmen — ein sinnvoller Teil der „geeigneten technischen Maßnahmen", die DSGVO (GDPR) Artikel 32 und die NIS2 (EU-Cybersicherheits-Richtlinie) verlangen.

Der sichere Rollout: zuerst der Report-only-Modus

Der größte Grund, warum kleine Websites CSP meiden, ist die Angst, das Layout zu beschädigen. Die Lösung: Setze zuerst Content-Security-Policy-Report-Only ein. Der Browser prüft die Policy und meldet Verstöße, erzwingt sie aber nicht. Beobachte eine Woche lang die Logs, behebe was blockiert wird, dann wechsle zum durchsetzenden Header.

Eine Starter-Policy, die für die meisten Websites funktioniert

Content-Security-Policy-Report-Only:
  default-src 'self';
  script-src 'self' https://www.googletagmanager.com https://www.google-analytics.com;
  style-src  'self' 'unsafe-inline' https://fonts.googleapis.com;
  font-src   'self' https://fonts.gstatic.com;
  img-src    'self' data: https:;
  connect-src 'self' https://www.google-analytics.com;
  frame-ancestors 'none';
  base-uri 'self';
  form-action 'self';
  upgrade-insecure-requests

Diese Policy geht davon aus, dass du alles von deiner eigenen Domain plus Google Analytics + Google Fonts auslieferst. Fast jede WordPress-, Shopify- oder statische Website passt hier mit kleinen Anpassungen hinein. Ersetze oder entferne die GA/Fonts-Zeilen, wenn du diese nicht verwendest.

So setzt du die Policy in nginx ein

add_header Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self' https://www.googletagmanager.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https:; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; upgrade-insecure-requests" always;

So setzt du die Policy in Apache ein

Header always set Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self' https://www.googletagmanager.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https:; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; upgrade-insecure-requests"

So setzt du die Policy in Cloudflare ein

Gehe in deinem Cloudflare-Dashboard zu Rules → Transform Rules → HTTP Response Header Modification. Füge einen Header namens Content-Security-Policy-Report-Only mit der obigen Policy als Wert hinzu. Das ist die schnellste Option, wenn du keinen Shell-Zugriff auf deinen Server hast.

So setzt du die Policy in WordPress ein

Installiere ein Header-Plugin wie Headers Security Advanced & HSTS WP oder setze die Header über dein Hosting-Panel. Vermeide es, CSP in der functions.php eines Themes zu setzen — viele Themes laden WP-Admin- oder Block-Editor-Assets dynamisch, was den Editor-Betrieb beeinträchtigt.

Häufige Stolpersteine

Von Report-only zur Durchsetzung

Nach einer Woche im Report-only-Modus ohne neue Verstöße im echten Traffic benenne den Header von Content-Security-Policy-Report-Only in Content-Security-Policy um. Die Policy wird jetzt durchgesetzt. Behalte den Reporting-Endpunkt bei — du erkennst neue Verstöße sofort, wenn ein Plugin-Update ein unerwartetes Skript einführt.

So erkennt Scanthra das Problem

Unser Modul Security Headers sendet ein einzelnes GET an deine Startseite und liest die Response-Header. Wenn Content-Security-Policy fehlt, schwach ist oder unsafe-eval enthält, erhältst du einen Befund mit Schweregrad, verständlicher Beschreibung und einem kopierfertigen Fix — im gleichen Format wie in diesem Artikel.

Möchtest du wissen, ob deine Website dieses Problem hat?

Scanthra führt eine freundliche, passive Prüfung durch und schickt dir per E-Mail einen verständlichen PDF-Bericht.

Site kostenlos scannen