HTTP Security-Header: Schwachstellen finden und schließen

Über das Online-Tool securityheaders.com lassen sich schnell und einfach Sicherheitslücken entdecken. Damit der Server sicher bleibt und das ist unabhängig vom Hoster, erklären wir die Umsetzung von HTTP Security-Header.

Sicherheit geht vor

Das Thema Sicherheit und Server-Security spielen nicht nur seit der Einführung der DSGVO eine wichtige Rolle. Viele Server und Hoster sind anfällig für diverse Angriffe. Diese können im kleinen Rahmen nervig sein (zum Beispiel Spam) oder im Worst Case zum Diebstahl ganzer Datensätze führen. Diese Daten im Nachhinein zu retten bzw. die Schwachstelle zu finden und alle Kunden zu informieren ist nicht nur sehr zeitaufwendig, sondern schadet vor allem der Marke. Ein kleiner Punkt, der häufig vergessen wird, aber vor allem bei WordPress eingesetzt werden sollte oder eher muss, sind Security-Headers.

Was sind HTTP Security-Header?

Sobald eine Webseite vom Browser aufgerufen wird, werden Informationen wie Cache-Steuerung, Zeichensätze, Fehlercodes etc. vom Server versendet. Über HTTP Security-Header wird der Browser angewiesen, wie diese Datensätze zu übertragen sind. So könnte ein Befehl lauten, dass nur über eine verschlüsselte SSL-Verbindung kommuniziert werden darf.

Lösung

Wer seine Webseite zum ersten Mal einem Test unterzieht wird wahrscheinlich ein Mangelhaft (=F) erhalten. Dies geht grundsätzlich 80% aller Webseiten so, denn die Absicherung des Headers ist selten eingebunden.

X-Frame-Options Header
Content-Diebe laden Webseiten gerne in einem Frame. Die X-Frame-Options verhindert diese Ausführung hat jedoch den Nachteil, dass gewisse Entwicklertools von Google und Co. nicht mehr korrekt ausgeführt werden können. Dieser Befehl sollte also nur ausgeführt werden, wenn die Seite sich nicht mehr im Entwicklungsmodus befindet.

X-XSS-Protection Header
Diese Option erzwingt die Cross-Site-Scripting (XSS) Schutzfilter im Browser. Zwar sollten moderne Browser wie Chrome und Firefox diese Option bereits aktiviert haben, aber Schaden tut es nicht.

X-Content-Type-Options Header
Angriffe durch falsche MIME-Typen kommen leider häufig vor. Sollte der MIME-Typ nicht korrekt sein, werden Skripte und Styles erst garnicht geladen.

Strict-Transport-Security-Header
In Zeiten wo SSL-Zertifikate bereits für jede URL ein Muss sein sollten, erzwingt diese Option die Kommunikation nur über eine sichere „Leitung“. Hier gilt zu beachten, dass ein SSL-Zertifikat angelegt sein muss – klingt logisch 😉

Wir empfehlen die unten aufgeführten HTTP Security-Header über die .htaccess einzubinden. Dies geht sehr einfach in einem zusammengefassten Befehl.

    Header set X-XSS-Protection "1; mode=block"
    Header always append X-Frame-Options SAMEORIGIN
    Header set X-Content-Type-Options "nosniff"
    Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
    Header set Referrer-Policy "no-referrer-when-downgrade"

Sind alle Header gesetzt, sollte die Webseite nun mindestens ein „B“ für Gut erreichen.

HTTP security-header

Wenn du Hilfe bei der bei der technischen Umsetzung benötigst kannst du uns gerne unter Kontakt schreiben.