Security Headers
Der Security-Headers-Check bewertet die HTTP-Antwort-Header deiner Website anhand empfohlener Sicherheitspraktiken. Fehlende oder falsch konfigurierte Security Headers machen deine Website anfällig für Clickjacking, XSS, MIME-Sniffing und andere Angriffe.
Funktionsweise
Hoppla schickt eine HTTP-GET-Anfrage an die URL deines Monitors und untersucht die Antwort-Header. Jeder Security Header wird einzeln analysiert und daraus eine Gesamtbewertung (0-100) sowie eine Schulnote (A+ bis F) berechnet.
Das Ganze ist ein beratender Check -- er erzeugt Warnungen bei niedrigen Bewertungen, erstellt aber niemals Vorfälle.
Geprüfte Header
Hoppla bewertet die folgenden Security Headers:
Strict-Transport-Security (HSTS) -- 25 Punkte
Zwingt Browser, für alle zukünftigen Anfragen an deine Domain HTTPS zu verwenden. Hoppla prüft:
- Vorhandensein -- Ist der Header gesetzt?
- max-age -- Sollte mindestens 31.536.000 (1 Jahr) betragen. Niedrigere Werte erzeugen eine Warnung.
- includeSubDomains -- 5 Bonuspunkte, wenn vorhanden.
- preload -- 5 Bonuspunkte, wenn vorhanden.
Content-Security-Policy (CSP) -- 25 Punkte
Steuert, welche Ressourcen der Browser laden darf. Hoppla prüft:
- Vorhandensein -- Ist der Header gesetzt?
- default-src oder script-src -- Mindestens eine dieser Direktiven sollte für die volle Punktzahl vorhanden sein. Eine CSP ohne beide bekommt Teilpunkte (50 %).
X-Content-Type-Options -- 10 Punkte
Verhindert, dass Browser den Content-Type der Antwort durch MIME-Sniffing erraten.
- Muss auf
nosniffgesetzt sein, um die volle Punktzahl zu bekommen.
X-Frame-Options -- 10 Punkte
Verhindert, dass deine Seite in iframes auf anderen Websites eingebettet wird (Clickjacking-Schutz).
- Muss auf
DENYoderSAMEORIGINgesetzt sein, um die volle Punktzahl zu bekommen. ALLOW-FROMist veraltet und gibt null Punkte.
Referrer-Policy -- 10 Punkte
Steuert, wie viel Referrer-Information mit Anfragen gesendet wird. Sichere Werte:
no-referrerstrict-originstrict-origin-when-cross-originsame-origin
Andere Werte (z. B. unsafe-url, no-referrer-when-downgrade) geben null Punkte.
Permissions-Policy -- 10 Punkte
Steuert, auf welche Browserfunktionen (Kamera, Mikrofon, Geolokalisierung usw.) deine Website zugreifen kann.
- Jeder gültige Permissions-Policy-Header gibt die volle Punktzahl.
X-XSS-Protection (informativ)
Dieser Header ist in modernen Browsern veraltet und wird nicht bewertet. Hoppla zeigt sein Vorhandensein rein zu Informationszwecken an.
Bewertung und Noten
Die Gesamtbewertung ergibt sich aus der Summe der Punkte für jeden Header:
| Note | Punktebereich |
|---|---|
| A+ | 100 |
| A | 90-99 |
| B | 70-89 |
| C | 50-69 |
| D | 30-49 |
| F | 0-29 |
Status-Zuordnung
| Note | Check-Status |
|---|---|
| A+ oder A | ok |
| B, C, D oder F | warning |
Ergebnisse
Jedes Security-Headers-Check-Ergebnis enthält:
- Status --
okoderwarning - Note -- Buchstabennote von A+ bis F
- Bewertung -- Numerische Bewertung von 0 bis 100
- Header-Analyse -- Für jeden Header: Name, ob er vorhanden ist, sein Wert, Status (bestanden/Warnung/fehlgeschlagen) und eine verständliche Erklärung
- Roh-Header -- Die vollständigen Antwort-Header (sensible Header wie
Set-CookieundAuthorizationwerden entfernt)
Konfiguration
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Prüfintervall | Nach Zeitplan | Wie oft die Security Headers geprüft werden. |
Die Bewertungsschwellen sind fest definiert und entsprechen der branchenüblichen Bewertung von Security Headers (vergleichbar mit securityheaders.com).
Alarme
Warnbenachrichtigung
Eine warning.security_headers-Benachrichtigung wird gesendet, wenn die Security-Headers-Note B oder schlechter ist. Die Benachrichtigung enthält Note und Punktzahl.
Benachrichtigungsereignisse
| Ereignis | Zeitpunkt |
|---|---|
warning.security_headers | Security-Headers-Note ist unter A gefallen |
warning.cleared | Security-Headers-Note hat sich auf A oder A+ verbessert |
Deine Bewertung verbessern
Hier ein guter Ausgangspunkt an Security Headers, die du zu deiner Webserver-Konfiguration hinzufügen kannst:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Content-Security-Policy: default-src 'self'; script-src 'self'
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()WARNING
Die Content-Security-Policy im obigen Beispiel ist bewusst strikt. Du wirst sie wahrscheinlich für deine Anwendung anpassen müssen. Starte mit Content-Security-Policy-Report-Only, um deine Policy zu testen, bevor du sie durchsetzt.