HTTP-Sicherheitsheader, die jede Unternehmenswebsite senden sollte
HTTP-Sicherheitsheader sind Anweisungen, die Ihr Webserver mit jeder Seite mitschickt. Sie sagen dem Browser, wie er mit Ihrer Website umgehen soll: immer HTTPS verwenden, anderen Websites nicht erlauben, Ihre Seiten in einen Frame einzubetten, keine Dateitypen raten, Skripte nur aus vertrauenswürdigen Quellen laden. Sie kosten keine Performance und werden einmalig in der Server- oder CDN-Konfiguration gesetzt.
Die Kurzfassung für die meisten Unternehmenswebsites: Senden Sie Strict-Transport-Security, Content-Security-Policy (mindestens mit frame-ancestors), X-Content-Type-Options, Referrer-Policy und Permissions-Policy, setzen Sie Cookies mit den richtigen Attributen und entfernen Sie Header, die Ihre Softwareversionen verraten. Die empfohlenen Werte unten folgen dem OWASP HTTP Headers Cheat Sheet und MDN.
Fehlende Header sind für sich allein selten ein Notfall. Sie zeigen aber, wie sorgfältig eine Website konfiguriert ist, und sie schließen ganze Klassen von Angriffen im Browser aus.
So prüfen Sie Ihre Header
Fragen Sie den Server nach den Headern Ihrer Startseite:
curl -sI https://yourcompany.com/
Prüfen Sie jeden Hostnamen, nicht nur den Hauptnamen: Shop, Login, Kundenportal und alle alten Staging-Server, die noch antworten. Header, die in der Anwendung gesetzt werden, fehlen oft auf Fehlerseiten, bei Weiterleitungen und bei statischen Dateien. Testen Sie deshalb mehrere unterschiedliche URLs.
Diese Header lohnen sich
Strict-Transport-Security (HSTS)
Weist den Browser an, für Ihre Domain eine festgelegte Zeit lang ausschließlich HTTPS zu verwenden. So kann ein Besucher nicht unbemerkt auf HTTP herabgestuft werden.
Strict-Transport-Security: max-age=63072000; includeSubDomains
max-age wird in Sekunden angegeben. Ergänzen Sie includeSubDomains nur, wenn jede Subdomain über HTTPS funktioniert. Für die Aufnahme in die Preload-Listen der Browser verlangt hstspreload.org ein max-age von mindestens 31536000 (1 Jahr), includeSubDomains und preload. Preloading lässt sich nur schwer rückgängig machen, fügen Sie es also zuletzt hinzu.
Content-Security-Policy (CSP)
Legt fest, aus welchen Quellen die Seite Skripte, Stylesheets, Bilder und Frames laden darf. Eine gute Policy ist die stärkste Abwehr gegen Cross-Site-Scripting auf Browserseite, muss aber auf Ihre Website zugeschnitten sein. Beginnen Sie im Berichtsmodus mit Content-Security-Policy-Report-Only, beobachten Sie, was blockiert würde, und setzen Sie die Policy dann durch.
Schon vor einer vollständigen Policy ist eine Direktive einfach und nützlich:
Content-Security-Policy: frame-ancestors 'self'
frame-ancestors steuert, welche Websites Ihre Seiten einbetten dürfen, und verhindert so Clickjacking. Die Direktive muss als Header gesendet werden, in einem <meta>-Tag funktioniert sie nicht.
X-Frame-Options
Der ältere Weg, Framing zu blockieren. OWASP empfiehlt, wo möglich frame-ancestors zu verwenden und X-Frame-Options: DENY (oder SAMEORIGIN) als Rückfallebene für ältere Browser zu senden.
X-Content-Type-Options
X-Content-Type-Options: nosniff
Verhindert, dass der Browser den Typ einer Datei errät, damit eine hochgeladene Datei nicht als Skript ausgeführt werden kann. Achten Sie darauf, dass Ihre Content-Type-Header auf der ganzen Website korrekt sind.
Referrer-Policy
Referrer-Policy: strict-origin-when-cross-origin
Begrenzt, wie viel von Ihren URLs an andere Websites weitergegeben wird, wenn Besucher auf Links klicken. Das ist wichtig, wenn URLs Bestellnummern, Tokens oder Suchbegriffe enthalten.
Permissions-Policy
Permissions-Policy: geolocation=(), camera=(), microphone=()
Schaltet Browserfunktionen ab, die Ihre Website nicht nutzt, damit ein eingeschleustes Skript sie nicht anfordern kann.
Auch Cookies brauchen Attribute
Session-Cookies sollten mit Secure (nur HTTPS), HttpOnly (nicht aus JavaScript lesbar) und SameSite=Lax oder Strict gesetzt werden:
Set-Cookie: session=...; Secure; HttpOnly; SameSite=Lax; Path=/
Prüfen Sie auch die Domain des Cookies. Ein Cookie für .yourcompany.com ist für jede Subdomain lesbar. Das wird relevant, falls eine davon einmal über einen verwaisten DNS-Eintrag übernommen wird.
Header, die Sie entfernen oder nicht mehr verwenden sollten
ServerundX-Powered-Bymit Versionsnummern, etwaApache/2.4.41oderPHP/7.4.3. Sie verraten jedem genau, welche Software in welcher Version er nachschlagen muss. OWASP empfiehlt,X-Powered-Byzu entfernen undServernichtssagend zu machen.X-XSS-Protection. MDN führt den Header als veraltet und nicht standardisiert und weist darauf hin, dass er in ansonsten sicheren Websites Probleme verursachen kann. OWASP empfiehlt, ihn nicht zu setzen oderX-XSS-Protection: 0zu senden und sich auf CSP zu verlassen.Expect-CT. OWASP rät davon ab und empfiehlt, ihn aus bestehenden Konfigurationen zu entfernen.
Wo Sie die Header setzen
Setzen Sie Header an einer Stelle, die jede Antwort abdeckt: im Webserver (nginx add_header ... always;, Apache Header always set), im CDN oder in den Header-Einstellungen der Hosting-Plattform. Das Schlüsselwort always ist bei nginx wichtig: Ohne es werden Header nur bei erfolgreichen Antworten und Weiterleitungen gesetzt, nicht auf Fehlerseiten.
Kurze Checkliste
- Führen Sie
curl -sIfür jeden Ihrer Hostnamen aus. - Ergänzen Sie HSTS,
X-Content-Type-Options,Referrer-Policy,Permissions-Policyundframe-ancestors. - Führen Sie eine vollständige CSP zuerst im Berichtsmodus ein.
- Setzen Sie
Secure,HttpOnlyundSameSitebei Session-Cookies. - Entfernen Sie Versionsnummern aus
ServerundX-Powered-By, und verzichten Sie aufX-XSS-ProtectionundExpect-CT. - Prüfen Sie erneut nach jeder Änderung an Server, CDN oder Plattform.
Wenn Sie schon in der Serverkonfiguration sind, stellen Sie auch sicher, dass sie keine offen erreichbaren .env-, .git- oder Backup-Dateien ausliefert.
Wo Datahorses ins Spiel kommt
Datahorses überwacht Ihre Websites jeden Tag von außen und prüft, was Browser und Angreifer tatsächlich erhalten: fehlende Sicherheitsheader, Cookies ohne Secure, HttpOnly oder SameSite, Server, die ihre Versionen verraten, und gemischte HTTP-Inhalte auf HTTPS-Seiten. Wir greifen nicht auf Ihre Systeme zu und benötigen keinen Zugang. Zu jedem Fund erhalten Sie die genaue Konfigurationsänderung für Ihren Entwickler. Sehen Sie sich die vollständige Liste dessen an, was wir überwachen, oder fordern Sie ein Angebot an.
Weitere Artikel
Absenderanforderungen von Gmail und Yahoo: was sich 2024 geändert hat und was Sie prüfen sollten
Seit Februar 2024 erwarten Gmail und Yahoo von Massenversendern authentifizierte, ausgerichtete E-Mails und eine einfache Abmeldung. Was die Regeln besagen und wie Sie Ihre Domain prüfen.
Abgelaufene SSL/TLS-Zertifikate: Warum sie Websites immer noch lahmlegen
Ein abgelaufenes Zertifikat blockiert Besucher mit einer ganzseitigen Browserwarnung und kann APIs und E-Mail lahmlegen. Die Laufzeiten werden kürzer, die Erneuerung muss also jedes Mal klappen.
PHP2Shell: Welche PHP-Versionen gepatcht sind und wie Sie Ihre prüfen
Das PHP-Projekt hat am 21. Oktober 2026 2 kritische Lücken geschlossen. Welche Versionen den Fix enthalten, was Ihr Server meldet und was Sie Ihren Hoster fragen sollten.