Kurz gesagt
Sicherheitsheader sind Anweisungen, die ein Server mit jeder Antwort an den Browser schickt: nur verschlüsselt verbinden, keine eingeschleusten Skripte ausführen, sich nicht in fremde Seiten einbetten lassen, Dateitypen nicht erraten. Die wichtigsten sind Strict-Transport-Security, Content-Security-Policy, der Schutz vor Einbettung und X-Content-Type-Options. Sie wehren ganze Klassen von Angriffen ab oder erschweren sie, sofern der Browser sie kennt — aber sie ersetzen keine sichere Anwendung, und ein fehlender Header ist noch kein Angriff.
Was ein Antwort-Header ist
Wenn dein Browser eine Seite abruft, schickt der Server vor dem eigentlichen Inhalt ein paar Zeilen mit: welcher Dateityp folgt, wie lange der Browser ihn zwischenspeichern darf, ob ein Cookie gesetzt wird. Diese Zeilen heißen Header. Einige davon sind Sicherheitsanweisungen — sie sagen dem Browser, was er mit dieser Antwort nicht tun soll.
Das Besondere daran: Der Schutz läuft im Browser jedes Besuchers, nicht auf dem Server. Eine Zeile in der Serverkonfiguration schützt damit alle, die die Seite aufrufen, ohne dass sie etwas tun müssen.
Die wichtigen Header und was sie tun
Dazu kommt für Seiten mit persönlichen Inhalten Cache-Control: no-store, damit weder ein gemeinsam genutzter Zwischenspeicher noch der Browser eine Seite mit Kontodaten aufbewahrt. Und für Schnittstellen, die fremde Websites lesen dürfen, die Regeln von CORS (Cross-Origin Resource Sharing) — eng gefasst, nie mit einem Stern zusammen mit Anmeldedaten.
Was du weglassen oder entfernen kannst
- X-XSS-Protection: veraltet. Der Filter, den er steuerte, konnte laut MDN in sonst sicheren Seiten selbst Lücken schaffen; OWASP rät, den Header wegzulassen oder auf 0 zu setzen.
- Expect-CT und Public-Key-Pins: von den Browsern entfernt. Sie bewirken nichts mehr.
- Feature-Policy: abgelöst durch Permissions-Policy.
- Server mit Versionsnummer, X-Powered-By und ähnliche Zeilen: Sie verraten, welche Software in welcher Fassung läuft. OWASP rät, sie zu entfernen — mit dem ehrlichen Zusatz, dass Angreifer die Software auch auf anderen Wegen erkennen können.
Zum Preloading von HSTSManche Anleitungen empfehlen, die eigene Adresse in die fest eingebaute HSTS-Liste der Browser eintragen zu lassen. Die Betreiber dieser Liste raten inzwischen selbst davon ab, weil viele Browser Aufrufe ohnehin auf HTTPS heben — und ein Eintrag lässt sich nur mühsam und über Monate wieder entfernen.
Ein Beispiel: vorher, und so hält es HexWarte
So sehen die Header vieler kleiner Websites aus — die Seite funktioniert, geschützt ist sie kaum:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Server: Apache/2.4.41 (Ubuntu)
X-Powered-By: PHP/7.4.3
Set-Cookie: PHPSESSID=…; path=/
- Es fehlen HSTS, eine Content Security Policy, der Schutz vor Einbettung und nosniff.
- Server und X-Powered-By nennen Software und Fassung.
- Das Sitzungs-Cookie trägt weder Secure noch HttpOnly noch SameSite.
Und das sind die Sicherheitsheader, mit denen hexwarte.de am 21. September 2026 antwortete (ein Auszug) — die Zeilen kannst du mit der Anleitung zum Kopieren selbst nachprüfen:
Strict-Transport-Security: max-age=31536000
Content-Security-Policy: default-src 'none'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'none'; media-src 'none'; object-src 'none'; frame-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'; worker-src 'none'; manifest-src 'none'
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Referrer-Policy: no-referrer
Permissions-Policy: accelerometer=(), autoplay=(), camera=(), display-capture=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Die Richtlinie verbietet zuerst alles und erlaubt dann nur, was die Seite braucht: Skripte, Stile, Bilder und Schriften von der eigenen Adresse. Das geht, weil HexWarte kein einziges Skript im HTML selbst stehen hat und keine fremden Inhalte lädt. Für eine Seite mit Analysewerkzeug, Kartendienst oder eingebetteten Videos sähe eine gute Richtlinie anders aus. Cross-Origin-Resource-Policy verbietet fremden Seiten, Dateien von hexwarte.de einzubinden. HSTS gilt hier ohne includeSubDomains, also für hexwarte.de mit allen Unterseiten, nicht aber für Subdomains wie tls.hexwarte.de.