TLS allein reicht nicht. Auch mit einem A+ bei Qualys SSL Labs fehlt ein wichtiger Teil: die HTTP-Security-Header. Sie schützen vor Cross-Site-Scripting, Clickjacking und MIME-Sniffing. Trotzdem setzen die wenigsten Webserver sie. Einen schnellen Überblick gibt securityheaders.com.
Modul aktivieren
Apache braucht das Headers-Modul. Unter Debian/Ubuntu:
a2enmod headers service apache2 restart
Für spätere Konfigurationsänderungen reicht ein Reload (service apache2 reload).
Header setzen
Die Header können global in /etc/apache2/conf-enabled/security.conf oder pro vHost in der jeweiligen Konfigurationsdatei gesetzt werden:
ServerTokens Prod ServerSignature Off TraceEnable Off Header set X-Content-Type-Options: "nosniff" Header set X-Frame-Options: "sameorigin" Header set X-Permitted-Cross-Domain-Policies: "master-only" Header set X-XSS-Protection: "1; mode=block" Header unset X-Powered-By
Was die einzelnen Einstellungen bewirken
ServerSignature Off entfernt die Serverversion aus Fehlerseiten. ServerTokens Prod reduziert den Server-Header auf das Wort „Apache“, ohne Versionsnummer. Komplett entfernen lässt sich der Header im Standard-Apache nicht. Es gibt dazu einen Bug-Report mit WONTFIX. Manche Distributionen patchen das, sonst muss man selbst kompilieren oder damit leben.
TraceEnable Off deaktiviert die HTTP-TRACE-Methode serverweit.
X-Frame-Options: sameorigin verhindert, dass die Seite in fremde iframes eingebettet wird. Wer Einbettungen braucht, sollte diesen Header weglassen oder auf Content-Security-Policy: frame-ancestors umsteigen.
X-Content-Type-Options: nosniff verhindert MIME-Type-Sniffing im Browser. X-XSS-Protection aktiviert den XSS-Filter in älteren Browsern. Moderne Browser setzen stattdessen auf Content Security Policy (CSP).
Header unset X-Powered-By entfernt den PHP-Versionsheader, sofern vorhanden.
Ergebnis prüfen
Nach dem Reload die eigene Domain auf securityheaders.com scannen. Die Bewertung sollte sich deutlich verbessert haben.
Fragen? Einfach melden.
Schreibe einen Kommentar