Sicherheits-Ratgeber
Strict-Transport-Security ist eine Zeile Konfiguration mit einem langen Gedächtnis. Dieser Ratgeber behandelt, was jeder Teil des Werts bewirkt, wie Sie ihn in Stufen einführen und warum die Preload-Liste die eine Entscheidung ist, die Sie hier nicht schnell zurücknehmen können.
01 Warum es wichtig ist
Eine Weiterleitung von HTTP auf HTTPS schützt alles danach, aber nicht die Anfrage, die sie auslöst. Diese erste unverschlüsselte Anfrage ist im Netzwerk sichtbar und kann abgefangen werden, bevor Ihr Server überhaupt antwortet. Strict-Transport-Security nimmt sie weg: Hat ein Browser den Header einmal gesehen, stellt er jede weitere Anfrage selbst auf HTTPS um, bevor etwas das Gerät verlässt.
Genau dieses Gedächtnis ist der Haken. Der Browser hält sich so lange an den Header, wie max-age es vorgibt, und fällt in der Zwischenzeit nicht auf HTTP zurück, auch dann nicht, wenn Ihr Zertifikat abläuft oder eine Subdomain nie eines hatte. HSTS ist deshalb ein Header, in den man hineinwächst, statt ihn sofort auf voller Stärke einzuschalten.
02 Der Wert
max-age Was er bewirkt. Gibt an, wie viele Sekunden der Browser sich HTTPS für diesen Host merken soll. Zwei Jahre, also 63072000 Sekunden, ist der übliche Produktivwert.
Warum er wichtig ist. Ein kurzer Wert ist der sichere Einstieg: mit wenigen Minuten beginnen, prüfen, dass nichts bricht, dann erhöhen. Ein langer Wert ist das Ziel, denn wer innerhalb des Zeitfensters nicht wieder da war, ist bei seiner nächsten ersten Anfrage ungeschützt.
max-age=63072000 includeSubDomains Was er bewirkt. Erweitert die Regel auf jede Subdomain des Hosts, der den Header gesendet hat, auch auf solche, die es noch gar nicht gibt.
Warum er wichtig ist. Ohne die Direktive kann ein Angreifer über eine Subdomain gehen, die noch auf HTTP antwortet. Mit ihr muss jede Subdomain gültiges HTTPS ausliefern, prüfen Sie also vorher Ihre internen und alten Hosts.
max-age=63072000; includeSubDomains preload Was er bewirkt. Markiert die Domain als Kandidat für die Preload-Liste der Browser, die HTTPS-Zwang direkt im Browser ausliefert, statt auf einen ersten Besuch zu warten.
Warum er wichtig ist. Damit ist auch die allererste Anfrage eines Besuchers geschützt, der noch nie auf Ihrer Website war. Es bedeutet zugleich, dass eine Entfernung Monate und einen Release-Zyklus aller Browser braucht, behandeln Sie es also als dauerhaft.
max-age=63072000; includeSubDomains; preload 03 Einführung
Senden Sie den Header nur aus dem HTTPS-Listener. Beginnen Sie mit wenigen Minuten max-age, dann Stunden, dann Tage, und prüfen Sie jedes Mal, dass jeder Host, der Ihnen gehört, weiterhin über HTTPS antwortet. Fügen Sie includeSubDomains hinzu, wenn Sie sich der Subdomains sicher sind, und erst danach denken Sie über preload nach.
server { listen 443 ssl; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always; } Senden Sie den Header nicht über HTTP: Browser ignorieren ihn dort, und er verdeckt Fehler, die Sie lieber sehen würden. Und behalten Sie die Weiterleitung von HTTP auf HTTPS. HSTS schützt wiederkehrende Besucher, die Weiterleitung deckt alle anderen ab.
04 Fragen
Besucher bekommen eine Zertifikatswarnung, die sie nicht wegklicken können, denn HSTS entfernt den Ausnahmeweg. Die Website ist damit faktisch offline, bis das Zertifikat erneuert ist. Das ist der Hauptgrund, max-age in Stufen zu erhöhen.
Für den Header ja: max-age=0 senden, und Browser vergessen die Regel beim nächsten Besuch. Für die Preload-Liste ist es ein Antrag auf Entfernung plus die Wartezeit, bis die Browser die aktualisierte Liste ausliefern, und das dauert Monate.
Wenn dieser Host eine Subdomain des sendenden Hosts ist, ja. Jede Subdomain muss von da an gültiges HTTPS ausliefern, erfassen Sie sie also vor dem Setzen der Direktive.
Es sichert die Übertragung, sonst nichts. Es beeinflusst weder, was eine Seite laden darf, noch wie Cookies sich verhalten oder ob Ihre Website eingebettet werden kann. Dafür gibt es eigene Header.
05 Im Detail
Die Übertragung ist eine Ebene. Diese Ratgeber behandeln die darüber.
Was jeder Response-Header bewirkt, welche Ihre Website senden sollte und wie Sie sie richtig konfigurieren.
Der stärkste Schutz gegen Cross-Site-Scripting: welche Direktiven Sie setzen, wie Sie eine Richtlinie im Report-Only-Modus einführen und wie Sie erzwingend werden, ohne Ihre Website zu zerlegen.
Secure, HttpOnly und SameSite: die Cookie-Attribute, die eine Sitzung vor Skripten und fremden Seiten schützen, samt Einstellungen für einen typischen Stack.
Wie eine unsichtbare Überlagerung aus einem Besucherklick eine Aktion auf Ihrer Website macht, und die zwei Header, die das verhindern: X-Frame-Options für ältere Clients, frame-ancestors für alles andere.
Welcher Teil Ihrer URLs an fremde Seiten geht, wenn ein Besucher weiterklickt: die fünf Werte, die zählen, was jeder davon preisgibt und welcher der sinnvolle Standard ist.
Kamera, Mikrofon, Standort und Bezahlfunktion für Ihre Website und alle eingebetteten Inhalte abschalten: die Syntax der Positivliste und warum eine nicht genannte Funktion keine abgeschaltete Funktion ist.
Die Einträge, die verhindern, dass jemand in Ihrem Namen Mails verschickt, und der, der Ihre DNS-Antworten ehrlich hält: was jeder leistet und in welcher Reihenfolge Sie sie einführen.
Die Datei, die Sicherheitsforschern sagt, wohin eine Schwachstelle gemeldet wird. Zwei Pflichtfelder, zehn Minuten Arbeit, und der Unterschied zwischen einer privaten und einer öffentlichen Meldung.
Ein Header, der heute stimmt, kann nach dem nächsten Deploy fehlen. Drei Wege, das zu bemerken: ein Cronjob mit curl, eine Prüfung in Ihrer CI-Pipeline und ein geplanter Scan, jeweils mit dem, was er findet und was nicht.
Wie sich eine Richtlinie durch Deploys, Plugins und CDN-Regeln unbemerkt ändert und wie Sie es merken: ein Header-Diff, Verstoßmeldungen über report-to und was ein Scan-Vergleich zeigen kann und was nicht.
Weiterlesen
Jeder Ratgeber steht für sich, zusammen decken sie ab, worauf unser Scanner schaut. Wählen Sie den, der Ihrer nächsten Frage am nächsten kommt.
Unser kostenloser Quickscan liest Ihren ausgelieferten Strict-Transport-Security-Header zusammen mit dem Rest Ihrer Transportkonfiguration - und erklärt jeden Befund verständlich.