Security-Header prüfen
HSTS, CSP, X-Frame-Options, Permissions-Policy und Co. — moderne Header schützen vor XSS, Clickjacking und Mixed-Content. Wir geben dir den Score.
Die wichtigsten Security-Headers
Strict-Transport-Security (HSTS)
Erzwingt, dass der Browser deine Seite ausschließlich über HTTPS lädt — auch wenn
jemand http:// in die URL tippt. Ohne HSTS ist eine MitM-Attacke
beim ersten Besuch theoretisch möglich. Empfohlen:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
Content-Security-Policy (CSP)
Eine der mächtigsten Schutzmaßnahmen gegen XSS. Definiert, welche Quellen
Scripts, Styles, Fonts, Bilder, etc. laden dürfen. Strikte CSP verbietet
'unsafe-inline' und 'unsafe-eval' — was viele alte
WordPress-Plugins kaputt macht. Lohnt sich trotzdem.
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
X-Content-Type-Options
Verhindert MIME-Sniffing — der Browser nimmt den deklarierten Content-Type
ernst und versucht nicht, anhand des Inhalts zu raten. Wert: immer
nosniff.
X-Frame-Options
Verhindert Clickjacking, indem deine Seite nicht in einem iframe geladen werden
darf. DENY = gar nicht, SAMEORIGIN = nur deine eigene Domain.
Modernere Alternative: frame-ancestors in der CSP.
Referrer-Policy
Steuert, welcher Referer beim Klick auf einen externen Link mitgesendet wird.
strict-origin-when-cross-origin ist ein guter Default — bei externen
Links wird nur die Domain übermittelt, kein voller Pfad mit Query-Strings.
Permissions-Policy
Deaktiviert moderne Browser-APIs, die du nicht brauchst (Mikrofon, Geolokation,
Kamera, Vibration, …). Bonus: deaktiviert auch das berüchtigte FLoC-Tracking
mit interest-cohort=().
Permissions-Policy: camera=(), microphone=(), geolocation=(), interest-cohort=()
Konfiguration in nginx
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "DENY" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
Konfiguration in Apache (.htaccess)
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "DENY"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>