Deine Website wird gerade angegriffen – merkt sie es überhaupt?

Während du das liest, scannt irgendwo ein Bot deine Website nach Schwachstellen. Formulare, Login-Bereiche, Skripte, Datei-Uploads – alles wird systematisch getestet. Automatisch, rund um die Uhr, ohne Pause.

Die meisten Website-Betreiber merken davon nichts. Bis es zu spät ist.

Wie ein Angriff abläuft

Ein einziges Einfallstor reicht: eine ungeschützte Formularvalidierung, ein veraltetes Plugin, ein externes Skript aus einer kompromittierten Quelle. Was dann passiert, ist bekannt – Schadcode einschleusen, Daten abgreifen, Systeme kompromittieren, die Website für Angriffe auf andere Ziele missbrauchen.

Die häufigste und gefährlichste Angriffskategorie auf Websites ist Cross-Site Scripting (XSS): Angreifer schleusen JavaScript in eine Seite ein, das dann im Browser anderer Besucher ausgeführt wird. Klassische Ziele sind Formulareingaben, URL-Parameter und Kommentarfelder.

Der Schutz dagegen war lange komplex. Mit einer konsequenten Content Security Policy ist er es nicht mehr.

Was wir bei analytik.news konkret gemacht haben

Ich habe analytik.news gezielt gehärtet – mit einer strikten Content Security Policy (CSP) als zentralem Baustein. Das Ergebnis war messbar:

  • Security Score von 80 auf 120 gestiegen
  • Bewertung von B+ auf A+ verbessert

Aber die Zahl ist nicht das Wichtigste. Das Wichtigste ist, was jetzt passiert, wenn jemand versucht, Schadcode einzuschleusen: der Browser blockiert die Ausführung, bevor irgendetwas passiert. Nicht der Server, nicht eine Firewall – der Browser selbst, auf Basis der vom Server übermittelten Policy.

Was eine Content Security Policy macht

Eine CSP ist ein HTTP-Header, den der Server mit jeder Seitenantwort sendet. Sie legt fest, welche Ressourcen der Browser laden und ausführen darf – und welche nicht.

Die wichtigsten Direktiven:

Content-Security-Policy:
  default-src 'self';
  script-src 'self' 'sha256-ABC...';
  style-src 'self';
  img-src 'self' data:;
  connect-src 'self';
  frame-ancestors 'none';

'self' bedeutet: nur Ressourcen von der eigenen Domain. Alles andere – externe Skripte, eingebettete Inhalte, externe Stylesheets – wird blockiert, sofern nicht explizit erlaubt.

Tipp
Inline-JavaScript ist das häufigste Einfallstor für XSS-Angriffe. Eine strenge CSP verbietet Inline-Skripte grundsätzlich – mit einer wichtigen Ausnahme: Skripte, die per SHA-256-Hash explizit erlaubt sind. Matomo läuft auf analytik.news genau so: Das nötige Inline-Snippet ist per Hash freigegeben, alles andere wird blockiert. Den Hash liefert der Browser selbst in der Konsole, wenn eine CSP-Verletzung auftritt.

Der Nachhaltigkeits-Nebeneffekt

Das ist der Aspekt, der in Sicherheitsdiskussionen fast immer fehlt: Eine strenge CSP verhindert nicht nur Angriffe, sie reduziert auch unnötigen Datenverkehr.

Externe Skripte, die nicht geladen werden dürfen, werden nicht geladen. Das bedeutet weniger HTTP-Requests, weniger Bandbreite, weniger Serveranfragen, weniger Energieverbrauch. Sicherheit und Nachhaltigkeit greifen hier direkt ineinander.

Wer konsequent auf 'self' setzt und externe Abhängigkeiten minimiert, schützt nicht nur seine Besucher – er reduziert auch den digitalen Fußabdruck der Website messbar.

Info
Den aktuellen Sicherheitsstand einer Website lässt sich kostenlos mit securityheaders.com prüfen. Das Tool bewertet alle relevanten HTTP-Sicherheitsheader und gibt konkrete Empfehlungen. Eine A+-Bewertung ist erreichbar, erfordert aber Sorgfalt – besonders bei der CSP-Konfiguration für Inline-Skripte und externe Ressourcen.

Die unbequeme Frage

Weißt du, wie deine Website gerade auf Angriffe reagiert? Oder hoffst du, dass schon nichts passieren wird?

Das zweite ist fahrlässig und kann sehr teuer werden – nicht nur durch den Schaden selbst, sondern durch Haftung gegenüber betroffenen Nutzern, Meldepflichten nach DSGVO und den Aufwand für die Bereinigung einer kompromittierten Website.

Eine CSP ist kein Allheilmittel. Aber sie ist einer der wirksamsten und günstigsten Schritte, den man sofort umsetzen kann.

Zum LinkedIn-Post: linkedin.com