HTTP-Security-Header sind Anweisungen, die dein Server bei jeder Seite mitschickt, damit der Browser deines Besuchers weiß, wie er sich verhalten soll. Sie schützen vor gängigen Angriffen wie Clickjacking, Cross-Site-Scripting und dem heimlichen Laden von Inhalten über unsichere Verbindungen. In diesem Artikel erfährst du, welche Header wichtig sind, was sie bewirken und wie du sie über die .htaccess-Datei oder Plesk einrichtest.
Was sind HTTP-Security-Header?
Jedes Mal, wenn ein Browser deine Website aufruft, sendet der Server eine Antwort zurück, die nicht nur die Seite selbst enthält, sondern auch zusätzliche Informationen in Form von Headern. Security-Header sind eine bestimmte Kategorie davon: Sie teilen dem Browser mit, welche Ressourcen geladen werden dürfen, ob die Seite in einem Frame angezeigt werden darf und wie streng der Browser mit veralteten Sicherheitsprotokollen umgehen soll.
Ohne diese Header verlässt sich der Browser standardmäßig auf recht lockere Regeln, was böswilligen Akteuren Spielraum gibt, um beispielsweise Skripte von einer anderen Website in deine Seite zu laden. Mit gut eingestellten Headern schließt du diesen Spielraum so weit wie möglich, ohne dass dies die Ladegeschwindigkeit beeinträchtigt.
Der Server sendet Sicherheitsregeln mit, der Browser setzt sie durch.
Die wichtigsten Header erklärt
Du musst nicht alle existierenden Header kennen. Eine begrenzte Anzahl deckt den Großteil des Schutzes ab.
Content-Security-Policy (CSP) bestimmt, von welchen Quellen der Browser Skripte, Stile und Bilder laden darf. Dies ist der wirksamste Header gegen Cross-Site-Scripting, aber auch der schwierigste, um ihn richtig einzustellen, da du alle externen Quellen (wie ein CDN oder Analytics-Skript) berücksichtigen musst.
X-Frame-Options verhindert, dass deine Website in einem unsichtbaren Frame auf einer anderen Seite angezeigt wird – eine Technik, die als Clickjacking bekannt ist. Mit dem Wert SAMEORIGIN erlaubst du Framing nur von deiner eigenen Domain aus.
X-Content-Type-Options mit dem Wert nosniff verhindert, dass der Browser selbst den Dateityp eines Downloads errät, was missbraucht werden kann, um schädliche Dateien harmlos erscheinen zu lassen.
Referrer-Policy regelt, wie viele Informationen über die Herkunftsseite an externe Links mitgesendet werden, was datenschutzrelevant sein kann.
Strict-Transport-Security (HSTS) zwingt Browser dazu, immer über HTTPS zu verbinden, selbst wenn jemand versehentlich http:// eingibt. Stelle dies erst ein, nachdem du sicher bist, dass deine gesamte Website, einschließlich aller Subdomains, einwandfrei über HTTPS funktioniert.
Header einrichten: Schritt-für-Schritt-Anleitung
Auf einem Apache-Server stellst du Header meist über die .htaccess-Datei im Stammverzeichnis deiner Website ein. Hast du NGINX oder LiteSpeed, kann dies auch über die Serverkonfiguration erfolgen, aber in Plesk kannst du dank der Apache-Kompatibilitätsschicht oft dieselben .htaccess-Regeln verwenden.
Öffne die .htaccess-Datei
Gehe über Plesk zum Dateimanager deiner Website und öffne (oder erstelle) die .htaccess-Datei im Stammverzeichnis.
Füge die Header hinzu
Füge der Datei folgende Zeilen hinzu: Header set X-Frame-Options „SAMEORIGIN“, Header set X-Content-Type-Options „nosniff“ und Header set Referrer-Policy „strict-origin-when-cross-origin“.
Teste die Website sofort
Überprüfe nach dem Speichern, ob deine Seite noch normal lädt. Funktioniert ein eingebettetes Element plötzlich nicht mehr, liegt das meist an einer zu strengen CSP-Regel.
Füge CSP und HSTS erst später hinzu
Baue die Content-Security-Policy Schritt für Schritt auf, indem du zunächst im Report-Only-Modus testest, und aktiviere HSTS erst, wenn du sicher bist, dass HTTPS überall einwandfrei funktioniert.
Header testen und überprüfen
Nach der Einrichtung möchtest du wissen, ob die Header auch tatsächlich beim Browser ankommen. Öffne die Entwicklertools deines Browsers (meist mit F12), gehe zum Tab Netzwerk, lade deine Seite neu und klicke auf die Hauptanfrage. Unter „Response Headers“ siehst du genau, welche Header mitgesendet werden.
Beachte, dass Security-Header unabhängig von deinem SSL-Zertifikat sind: HTTPS sorgt für eine verschlüsselte Verbindung, Header sorgen für zusätzliche Verhaltensregeln oberhalb dieser Verbindung. Beides zusammen bietet den besten Schutz. Zweifelst du an deiner aktuellen Hosting-Umgebung, dann schau dir die Möglichkeiten von Webhosting mit Plesk an, in dem du solche Einstellungen übersichtlich verwalten kannst.
Häufig gestellte Fragen
Verlangsamen Security-Header meine Website?
Nein, Header sind einfache Textzeilen, die so gut wie keinen Einfluss auf die Ladezeit deiner Seite haben.
Kann ich Header ohne .htaccess einstellen?
Ja, je nach Serverkonfiguration ist dies auch über die Webserver-Einstellungen in Plesk oder in deinem CMS möglich, aber .htaccess ist auf Apache-ähnlichen Umgebungen die direkteste Methode.
Funktioniert das auch bei WordPress?
Ja, WordPress verwendet dieselbe .htaccess-Struktur, sodass die Header auf einer WordPress-Site genauso gut funktionieren wie auf einer statischen Website.
Ist ein falsch eingestellter Header gefährlich?
Eine zu strenge CSP kann Teile deiner Website funktionsunfähig machen, führt aber selten zu einem Sicherheitsrisiko. Teste daher immer zuerst, bevor du zu einer strikten Konfiguration wechselst.
Fazit
HTTP-Security-Header sind eine niedrigschwellige Möglichkeit, deine Website zusätzlich gegen Clickjacking, Skript-Injektionen und unerwünschte Datenquellen abzusichern. Beginne mit den einfachen Headern, teste gründlich und baue danach schrittweise eine strengere Content-Security-Policy auf.