Wie geht HSTS mit gemischten Inhalten um?

7

Ich habe gerade beim SSL- Servertest überprüft, ob ich das SSL-Zertifikat auf meinem Server korrekt implementiert habe. Ich habe eine Note A in ihrer Rangliste, aber Sie können eine A + bekommen, wenn Sie HSTS aktiviert haben . Nach einigem Suchen fand ich heraus, dass Google HSTS als Ranking-Faktor behandeln könnte. Es scheint also in Bezug auf SEO relevant zu sein. Vor der Implementierung von HSTS habe ich einige Fragen.

Frage 1

Was passiert, wenn einige externe Javascripts beispielsweise ein Bild über http (anstelle von https) auf meiner Website laden? Verhindert HSTS das Laden der gesamten Seite oder blockiert es nur den spezifischen "unsicheren" Inhalt?

Frage 2

Im Moment (ohne HSTS) erhalte ich eine Warnung "gemischter Inhalt", wenn Ressourcen über http geladen werden. Existiert tatsächlich "gemischter Inhalt", wenn HSTS aktiviert ist?

Sr. Schneider
quelle
Mir scheint, Sie verwechseln HSTS möglicherweise mit CSP . Beide sind optionale HTTPS-bezogene Sicherheitsfunktionen, die von bestimmten HTTP (S) -Antwort-Headern gesteuert werden, und beide können (in verschiedenen Fällen) verwendet werden, um unsichere HTTP-Anforderungen automatisch auf HTTPS zu aktualisieren . Hier endet jedoch die Ähnlichkeit.
Ilmari Karonen
Nein, ich verwechsle diese Technologien nicht. Ich habe nur keine Ahnung, wie HSTS funktioniert.
Sr. Schneider

Antworten:

13

HSTS versucht überhaupt nicht, gemischte Inhalte zu verarbeiten: Es steuert lediglich, ob der Browser eine interne 307Umleitung zu HTTPS durchführen soll, wenn er versucht, HTTP-URLs zu laden, oder nicht. Die Warnung zu gemischten Inhalten ist eine Funktion des Browsers, und alle aktuellen Browser tun dies (Mozilla Firefox 23+, Google Chrome 21+, Internet Explorer 10+, Edge von Anfang an ...). Die Warnung vor gemischten Inhalten blockiert zB <script>und <iframe>, aber nicht <img>.

Die Warnung zu gemischten Inhalten in allen genannten Browsern wird überprüft, bevor Inhalte geladen werden, dh auch bevor HSTS umleitet. Dies scheint nur natürlich und ist auch leicht zu testen. Standardmäßig werden alle externen Bilder auch über einfaches HTTP geladen, und eine Warnung zu gemischten Inhalten wird nur für Skripte und Iframes ausgegeben.

Gemischter Inhalt ohne HSTS

HSTS ändert nur die Situation, in der ein Image aus einer HSTS-fähigen Domäne über einfaches HTTP geladen und ausgeführt 307 Internal Redirectwird. Bemerkenswert: Dies ist eine Situation ohne Warnungen vor gemischten Inhalten.

Gemischter Inhalt mit HSTS

Daher funktioniert HSTS nicht als schnelle Lösung für das Problem mit gemischten Inhalten :

  • Sie müssen http://URLs auf Ihrer Site auch für die Domain selbst korrigieren.
  • Sie müssen sicherstellen, dass Sie keine externen Skripte aus Quellen laden, denen Sie nicht vertrauen.
    • Wenn der Drittanbieter HSTS nicht aktiviert, ist es immer noch anfällig für Man-in-the-Middle-Angriffe.
    • Dritte können Inhalte aus weiteren externen Quellen laden, und all dies gilt auch für diese.
    • Die externe Inhaltsseite kann geknackt sein oder selbst böswillige Aktivitäten ausführen.
Esa Jokinen
quelle
Wenn Sie nach einer Möglichkeit suchen, http-Anforderungen auf https zu "aktualisieren", profitieren Sie möglicherweise von einer CSP-Richtlinie (Content Security Policy), insbesondere dem upgrade-insecure-requestsAttribut. Sie können hier darüber lesen. Developer.mozilla.org/en-US/docs/Web/HTTP/Headers/… . Es scheint zu diesem Zeitpunkt mit Chrom und Firefox zu funktionieren.
David
3

Ich denke, die Antwort darauf hängt davon ab, ob die Skripte, auf die Sie verweisen, in der Domäne gehostet werden, für die HSTS aktiviert ist.

Wenn Sie beispielsweise Ihre Inhalte von mydomain.comdieser Domain aus bereitstellen und HSTS für diese Domain (und möglicherweise auch von Subdomains) aktivieren, aber die Skripte und anderen gemischten Inhalte, auf die Sie verweisen, otherdomain.combereitgestellt werden, von denen HSTS nicht aktiviert wird, sind gemischte Inhalte möglich und der Browser wird weiterhin aktiviert warnen Sie davor.

Was HSTS stoppt (und dabei hilft, gemischte Inhalte zu reparieren), sind Ressourcen, die über HTTP in derselben Domäne - und möglicherweise in einer Subdomäne, abhängig von Ihrer Konfiguration - verknüpft sind, da diese automatisch auf HTTPS "aktualisiert" werden.

David
quelle
Und was ist mit Skripten aus anderen Domänen? Sie werden blockiert?
Sr. Schneider
1
Nein, ich glaube, dass HSTS für die Domain gilt, auf die Sie den Header anwenden (und optional auch für die Subdomains). Wenn Sie ein Skript aus einer anderen Domäne importieren, die kein HSTS verwendet, und dies über HTTP anstelle von HTTPS tun, wird das Skript aufgrund von HSTS nicht blockiert (es kann aus anderen nicht verwandten Gründen wie gemischtem Inhalt oder CORS usw. blockiert werden). Wenn Sie eine Domain auf HSTS haben und Ressourcen über http von Nicht-HSTS-Domains importieren, erhalten Sie höchstwahrscheinlich Warnungen zu gemischten Inhalten.
David
0

Dies ist beabsichtigt: Wenn HSTS funktioniert, wird das richtige Bild (das Häkchen über HTTPS) und, falls nicht, ein X-Zeichen über HTTP abgerufen.

Hoffentlich werden Browser keine gemischten Inhaltswarnungen mehr für Inhalte anzeigen, die über HSTS auf HTTPS aktualisiert wurden. :) :)

Amirah Ara
quelle