Header Optionen

Ergänzen Sie Ihre .htaccess Datei um folgende fettgedruckten Einträge, um diese über die Header-Optionen abzusichern.

Um sogenannte clickjacking-Attacken zu verhindern, die über <frame> und <iframe> eingebunden werden können, setzen Sie die X-Frame-Options auf DENY - Keine Seite kann dann Inhalte einbinden. Folgende Optionen stehen zur Auswahl:

  • DENY - verbietet jeglichen Frame-Zugriff
  • SAMEORIGIN - lässt nur Zugriffe von der eigenen Lokation zu
  • ALLOW-FROM - (ALLOW-FORM uri wird nicht von allen Browsern unterstützt) dies lässt nur Zugriffe von einer bestimmten URI zu
Die X-Frame-Options kann man angeben, sind aber inzwischen durch die Content-Security-Policy und der Angabe von frame-ancestors veraltet. Wir führen diese hier trotzdem mit auf, da wir auch weiter unten nur eine rudimentäre CSP Anweisung ohne frame-ancestors abgebildet haben.

Header set X-Frame-Options DENY


X-XSS-Protektion - Dieser Header bezieht sich nur auf IE8 und IE9 und schaltet den cross-site-scripting Schutz ein.

Header set X-XSS-Protection "1; mode=block"


X-Content-Type-Options - Dieser Header verhindert beim Internet Explorer "mime" basierte Attacken. Wenn der Server text/html liefert wird mit der nosniff Option der Browser angewiesen auch nur text/html zu rendern.

Header set X-Content-Type-Options "nosniff"


X-Content-Security-Policy - Mit dieser CSP können Sie eine Reihe von Angriffen verhindern. Es unterbindet das Ausführen von Javascript auf Ihrer Seite, wenn es außerhalb Ihrer Domain liegt.
Beachten Sie, dass die hier abgebildete Einbindung nur eine sehr rudimentäre Form darstellt.

Header set Content-Security-Policy "default-src 'self'"

Alle Sicherheitsregel/-richtlinien der CSP finden Sie unter developer.mozilla.org. Achtung: die CSP sieht es nicht vor im Dokument enthaltene Scripte oder Styles auszuführen - nur als ausgelagerte Dateien. Sollte es unumgänglich sein, verwenden Sie nach Möglichkeit NICHT unsafe-eval, unsafe-inline, sondern benennen Sie Ihr Script oder/und Style mit nonce und binden Sie es mit nonce-IhrVergebenerName ein. Oder Sie verwenden den vom Script/Style zugewiesenen Hash. Diesen können Sie zum Beispiel mit der Chrome-Konsole sehen beginnend mit sha. Ein internes Script binden Sie dann Beispielsweise mit script-src 'sha256-xxxxxxxxxxxxxxx' ein oder einen internen Style mit
style-src 'sha256-xxxxxxxxxxxxxxx'



Strict-Transport-Security


Läuft Ihre Seite bereits verschlüsselt über https, sollten Sie auch den Header für HTTP Strict Transport Security (HSTS) angeben. Mit dieser Funktion teilt Ihre Website Ihren Besuchern mit, dass sie über eine verschlüsselte Verbindung (HTTPS) erreichbar ist und der Browser diese Einstellung für längere Zeit zwischenspeichern soll (max-age (entspricht dabei der Dauer in Sekunden)). Warum Sie ihre Seite überhaupt verschlüsseln sollten und welche weiteren Vorteile dies bringt, können Sie hier nachlesen.

Preload-List
Die Entwickler von Google Chrome führen eine Liste mit Domains, für die HSTS aktiviert ist. Die Liste wird auch von anderen Browsern wie Firefox, Safari oder Internet Explorer genutzt und hilft das sogenannte Trust-on-first-use-Problem zu lösen. Vergleichbar mit im Browser hinterlegten Zertifikaten ist so garantiert, dass bereits beim ersten Aufruf einer Domain die HSTS unterstützt, eine verschlüsselte Verbindung aufgebaut wird. Der Eintrag in diese Preload-Liste ist hier kostenlos möglich: hstspreload.appspot.com

Folgende Kriterien müssen dafür erfüllt sein:

  • Die Website muss ein gültiges SSL-Zertifikat besitzen, dass nicht SHA–1-signiert sein darf.
  • Sämtlicher HTTP-Verkehr muss auf HTTPS umgeleitet werden.
  • Sämtliche Subdomains müssen über HTTPS ausgeliefert werden.
  • Unter der Basis-Domain muss ein HSTS-Header mit folgenden Werten ausgeliefert werden:
    • Der max-age-Wert muss mindesten 18 Wochen (10886400 Sekunden) betragen.
    • Der includeSubdomain-Token muss gesetzt sein.
    • Der preload-Token muss gesetzt sein.
    • Falls für Ihre Website eine Weiterleitung besteht, muss die Quelladresse den HSTS-Header besitzen.

Die an den HSTS-Header gestellten Anforderungen werden mit folgendem Befehl in der .htaccess-Datei erfüllt (hier mit der Laufzeit von einem Jahr):

Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS




Ihre Website überwacht mit


Die Antispam- & Antivirenlösung