Alle wichtigen HTTP Security Headers erklärt: HSTS, CSP, X-Frame-Options und mehr. Mit Beispiel-Konfigurationen für Apache und Nginx.
HTTP Security Headers sind eine der einfachsten und effektivsten Methoden, um deine Website gegen häufige Angriffe zu schützen. Sie werden vom Server als HTTP-Response-Header gesendet und weisen den Browser an, bestimmte Sicherheitsrichtlinien durchzusetzen.
Neben dem direkten Sicherheitsgewinn sind sie auch ein Signal für Google: Websites mit HTTPS und korrekten Security Headers werden als vertrauenswürdiger eingestuft. Das kann sich positiv auf das Ranking auswirken.
HSTS erzwingt, dass der Browser deine Website ausschließlich über HTTPS aufruft. Das verhindert Man-in-the-Middle-Angriffe und SSL-Stripping.
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Wichtig: Aktiviere HSTS erst, wenn du sicher bist, dass deine gesamte Website fehlerfrei über HTTPS funktioniert. Ein Rollback ist nicht einfach möglich.
CSP ist der mächtigste Security Header. Er legt fest, von welchen Quellen der Browser Ressourcen laden darf. Das verhindert Cross-Site-Scripting (XSS) und Daten-Injektions-Angriffe.
Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted-cdn.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://api.example.com; frame-ancestors 'none'
'unsafe-inline' und 'unsafe-eval' wenn möglich.Tipp: Starte mit Content-Security-Policy-Report-Only, um Verstöße zu protokollieren, ohne Ressourcen zu blockieren. So kannst du die Policy schrittweise anpassen.
Verhindert Clickjacking-Angriffe, indem die Seite nicht in einem <iframe> eingebettet werden kann.
X-Frame-Options: SAMEORIGIN
Hinweis: frame-ancestors in der CSP ist die modernere Alternative und bietet mehr Kontrolle.
Verhindert MIME-Type-Sniffing. Der Browser akzeptiert nur den deklarierten Content-Type und versucht nicht, den Typ selbst zu erraten — was bei Angriffen ausgenutzt werden kann.
X-Content-Type-Options: nosniff
Dieser Header hat nur einen gültigen Wert und sollte auf jeder Website gesetzt sein.
Kontrolliert, welche Referrer-Informationen bei Navigation und Requests mitgesendet werden. Schützt die Privatsphäre deiner Nutzer.
Referrer-Policy: strict-origin-when-cross-origin
Kontrolliert, welche Browser-Features und APIs deine Website nutzen darf. Damit verhinderst du, dass eingebettete Drittanbieter-Inhalte auf sensible APIs zugreifen.
Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(self)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https:; frame-ancestors 'none'"
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https:; frame-ancestors 'none'" always;
Nach der Konfiguration solltest du deine Headers testen:
curl -I https://deine-domain.de zeigt die Response-Header im Terminal.Prüfe die Security Headers deiner Website jetzt mit PageScore — kostenlos und in Sekunden.