1. Header Check
Über die HTTP-Header-Felder lassen sich über einen Webserver wichtige Parameter oder Argumente übermitteln. So zum Beispiel auch einige Security Header, die unter anderem Cross-Site-Scripting (XSS) erschweren sollen. Doch auch für Webseiten, die ausschließlich über TLS erreichbar sind, bieten die Security Header sinnvolle Ergänzungen. So kann bspw. die korrekte Anwendung von TLS-Certificate Pinning und HTTP Strict-Transport-Security (HSTS) für zusätzliche Sicherheit sorgen.
Mit dem Online-Tool securityheaders.io könnt ihr die Security Header einer Webseite oder eures eigenen Webservers überprüfen. Das Rating ist dem Vorbild von SSLLabs nachempfunden – ein Dienst, um die TLS-Einstellungen von Webservern unter die Lupe zu nehmen.
2. Ergebnisse
Unterstütze den Blog mit einem Dauerauftrag!
Unabhängig. Kritisch. Informativ. Praxisnah. Verständlich.
Die Arbeit von kuketz-blog.de wird vollständig durch Spenden unserer Leserschaft finanziert. Sei Teil unserer Community und unterstütze unsere Arbeit mit einer Spende.
2.1 Kuketz IT-Security
2.2 Kuketz Blog
Der Blog schneidet leider nicht ganz so gut, wie bspw. die Unternehmenswebseite, ab. Das liegt primär am fehlenden TLS-Certificate Pinning. Da die Laufzeit der Let’s Encrypt Zertifikate auf 90 Tage beschränkt sind, werde ich dies wohl auch vernachlässigen.
Der Content Security Policy (CSP) Header ist mittlerweile gesetzt – ein Sicherheitskonzept, mit dem sich unter anderem Cross-Site-Scripting (XSS) und andere Angriffe erschweren lassen. Doch dieser Security Header ist auf WordPress Blogs mit der Vielfalt von Plugins und verwendetem JavaScript nicht immer einfach zu integrieren. Ganz glücklich bin ich mit dem CSP-Header jedenfalls noch nicht…
3. Fazit
Probiert den Dienst doch einfach mal aus. Eines möchte ich euch aber noch mit auf den Weg geben: Nur weil eine Webseite womöglich keines dieser Security Header gesetzt hat, ist die Webseite nicht zwangsläufig »unsicher«. Das hängt immer von vielen weiteren Faktoren ab. Wer die HTTP Security Header allerdings korrekt setzt, der kann es einem Angreifer in Einzelfällen deutlich erschweren.
Wenn du über aktuelle Beiträge informiert werden möchtest, hast du verschiedene Möglichkeiten, dem Blog zu folgen:
4 Ergänzungen zu “HTTP Security Header prüfen”
Forum oder der Chat geeignete Anlaufstellen, um dein Anliegen zu diskutieren. Per E-Mail beantworte ich grundsätzlich keine (Support-)Anfragen – dazu fehlt mir einfach die Zeit. Kuketz-ForumAbschließender Hinweis
Blog-Beiträge erheben nicht den Anspruch auf ständige Aktualität und Richtigkeit wie Lexikoneinträge (z.B. Wikipedia), sondern beziehen sich wie Zeitungsartikel auf den Informationsstand zum Zeitpunkt des Redaktionsschlusses.Kritik, Anregungen oder Korrekturvorschläge zu den Beiträgen nehme ich gerne per E-Mail entgegen.
Vielen Dank for den Hinweis auf diesen interessanten Dienst.
Habe versucht, einige der HTTP Security Header (außer Public Key Pinning) über die „.htaccess“ zu setzen und mittels securityheaders.io einen Scan der Website durchzuführen. Getestet habe ich das Ganze mit zwei identischen PHP Web-Applikationen, aber auf unterschiedlichen Shared Hostings:
1. Shared Hosting mit nginx Webserver: Security Header werden korrekt als Antwort an den Browser gesendet (ähnlich wie es auch hier auf kuketz-blog.de geschieht)
2. Shared Hosting mit Apache Webserver, wobei PHP nicht als Modul, sondern im Benutzerkontext über FastCGI/fcgi ausgeführt wird: Der Antwortheader enthält KEINE Securty Header
Ich verstehe nicht, wieso es im einen Fall klappt, im anderen dagegen nicht. Weiß jemand diesbezüglich mehr, ob es ggf. irgendwelche Restriktionen geben kann, die das Setzen dieser Header verhindert oder einschränkt?
Okay, es scheint tatsächlich so zu sein, dass diese HTTP Security Header für Umgebungen mit PHP-FPM und mod_fastcgi nicht mittels „.htaccess“ gesetzt werden können. Die entsprechenden Header müsste man vermutlich direkt in PHP über eine Response-Methode an den Browser senden. Hmm.
Hallo und Danke für diesen interessanten Beitrag,
das Fazit unter Punkt 3 hat mich ein wenig getröstet.