Was ist Mixed Content
Mit TLS (auch bekannt als SSL ) wird die Internetkommunikation Ende-zu-Ende verschlüsselt, was ein sichereres Surferlebnis schafft. Benutzer können TLS-verschlüsselte Sites leicht erkennen, da die URL „https://“ anstelle von „http://“ enthält. In einigen Fällen kann eine HTTPS- Site jedoch auch Elemente enthalten, die mithilfe des Klartext- HTTP-Protokolls geladen werden . Dadurch entsteht eine Bedingung, die als gemischter Inhalt bekannt ist, manchmal auch als „HTTP über HTTPS“ bezeichnet.
Bei gemischten Inhalten haben Benutzer den Eindruck, dass sie sich in einer sicheren, verschlüsselten Verbindung befinden, da sie sich auf einer HTTPS-geschützten Website befinden, aber die unverschlüsselten Elemente der Seite schaffen Sicherheitslücken und öffnen diese Benutzer für böswillige Aktivitäten wie nicht autorisiertes Tracking und Man-in-the-Middle-Angriffe . Der Schweregrad der Sicherheitsanfälligkeit hängt davon ab, ob der gemischte Inhalt passiv oder aktiv ist.
Was ist der Unterschied zwischen Passiv-/Display-Mixed-Content und Active-Mixed-Content?
Passive/Display Mixed Content: In diesem Fall ist der unverschlüsselte HTTP-Content auf eingekapselte Elemente auf der Site beschränkt, die nicht mit dem Rest der Seite interagieren können – zum Beispiel Bilder oder Videos. Ein Angreifer kann beispielsweise ein über HTTP geladenes Bild blockieren oder ersetzen, den Rest der Seite jedoch nicht ändern.
Active Mixed Content: In diesem Fall werden Elemente oder Abhängigkeiten, die mit der gesamten Webseite interagieren und diese verändern können, über HTTP bereitgestellt. Dazu gehören Abhängigkeiten wie JavaScript-Dateien und API-Anfragen.
Aktive gemischte Inhalte stellen eine schwerwiegendere Bedrohung dar als gemischte passive Inhalte/Anzeigen. Bei einer Kompromittierung ermöglicht es einem Angreifer, eine ganze Webseite zu übernehmen, sensible Benutzereingaben wie Anmeldeinformationen zu sammeln, dem Benutzer eine gefälschte Seite bereitzustellen oder den Benutzer auf die Site eines Angreifers umzuleiten.
Die meisten modernen Webbrowser bieten Warnungen in der Entwicklerkonsole für gemischte Inhalte und blockieren die gefährlicheren Arten von gemischten Inhalten. Jeder Browser hat seine eigenen Regeln, aber im Allgemeinen wird aktiver gemischter Inhalt viel eher blockiert.
Obwohl gemischte passive Inhalte/Display-Inhalte eine geringere Bedrohung darstellen, bieten sie Angreifern dennoch die Möglichkeit, die Privatsphäre zu gefährden und Benutzeraktivitäten zu verfolgen. Da viele Browser einige Formen von passiven gemischten Inhalten zulassen und Benutzern nur Warnungen zu gemischten Inhalten in der Entwicklerkonsole anzeigen, werden viele Benutzer nicht wissen, dass sie gemischten Inhalten ausgesetzt sind.
Benutzer von veralteten Webbrowsern sind besonders anfällig, da diese Browser möglicherweise keine gemischten Inhalte blockieren.
Warum blockieren Browser nicht einfach alle gemischten Inhalte?
Eine leider große Anzahl beliebter Websites bietet Mixed Content in der einen oder anderen Form. Ein Webbrowser, der alle gemischten Inhalte blockiert, würde seinen Benutzern eine sehr schmale Version des Webs bereitstellen. Bis mehr Websites dieses Problem beheben, müssen Browser Kompromisse eingehen, indem sie einige der weniger schwerwiegenden Formen von gemischtem Inhalt zulassen.
Wie können Mixed-Content-Fehler behoben werden?
Webentwickler tragen die Verantwortung für die Beseitigung gemischter Inhalte. Im Laufe der Zeit sind Webbrowser in Bezug auf gemischte Inhalte immer restriktiver geworden, und dieser Trend wird sich fortsetzen. Es ist daher zwingend erforderlich, dass Entwickler gemischte Inhalte eliminieren, wenn sie möchten, dass Webbrowser ihre Website weiterhin anzeigen.
Die Lösung für gemischte Inhalte ist ganz einfach: Webentwickler müssen sicherstellen, dass jede Ressource auf ihrer Seite über HTTPS geladen wird. In der Praxis kann sich dies als knifflig erweisen, da moderne Websites oft mehrere verschiedene Ressourcen von verschiedenen Stellen laden.
Ein gutes Tool für Entwickler, um alle Instanzen von gemischtem Inhalt auf ihren Seiten zu erkennen, ist die Google Chrome-Entwicklerkonsole. Entwickler können ihren Quellcode auch auf Instanzen von Ressourcen wie API-Aufrufe und Bibliotheken überprüfen, die mit einer „http://“-URL geladen werden. In einigen Fällen besteht die Lösung darin, einfach die URL „http://“ durch „https://“ zu ersetzen. Zunächst muss jedoch überprüft werden, ob eine HTTPS-Version dieser Ressource verfügbar ist. Wenn keine verschlüsselte Version der Ressource verfügbar ist, muss sie entweder ersetzt oder ganz entfernt werden.