Gemischte Inhalte
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Januar 2020.
* Some parts of this feature may have varying levels of support.
Wenn eine Webseite von einem sicheren Ursprung über einen sicheren Kanal wie HTTPS geladen wird, ist die Verbindung mit dem Webserver verschlüsselt und somit vor Abhören und Manipulation durch Man-in-the-Middle-Angriffe geschützt. Wenn die sicher geladene Webseite nur Bilder, Skripte und andere Ressourcen umfasst, die ebenfalls auf sicheren Ursprüngen gehostet werden, können Benutzer sicher sein, dass die gesamte Seite vor diesen Arten von Angriffen geschützt ist.
"Gemischte Inhalte" beziehen sich auf sicher geladene Webseiten, die Ressourcen verwenden, die über HTTP oder ein anderes unsicheres Protokoll abgerufen werden. Diese Art von Webseiten ist potenziell unsicher, da alle unsicher gesendeten Ressourcen eingesehen werden können, wodurch möglicherweise sensible Informationen preisgegeben oder von einem Angreifer verändert werden können. Skripte sind besonders gefährlich, da sie jeden Aspekt der Seite ändern können, aber alle Arten von Ressourcen bergen ein gewisses Risiko. Beispielsweise können Bilder manipuliert werden, um dem Benutzer falsche oder irreführende Informationen zu geben oder um die scheinbare Funktion einer Schaltfläche zu ändern.
"Gemischte Downloads" beziehen sich auf Ressourcen-Downloads, die von einem sicheren Kontext aus initiiert werden, aber über eine unsichere Verbindung abgerufen werden. Sie bergen dieselben Risiken wie gemischte Inhalte: Downloads scheinen von einem sicheren Ursprung zu stammen, könnten aber unterwegs verändert oder eingesehen worden sein.
Sie sollten gemischte Inhalte und gemischte Downloads auf Ihren Websites vermeiden! Browser verringern die Risiken gemischter Inhalte, indem sie Anfragen für gemischte Inhalte von Bildern, Videos und Audios von HTTP auf HTTPS automatisch aktualisieren und unsichere Anfragen für alle anderen Ressourcentypen blockieren. Sie sollten auch gemischte Downloads standardmäßig blockieren.
Arten von gemischten Inhalten
Gemischte Inhalte auf einer Webseite werden in zwei Kategorien unterteilt: "aktualisierbare Inhalte" und "blockierbare Inhalte". Browser sollten Anfragen für aktualisierbare Inhalte von HTTP auf HTTPS automatisch aktualisieren und Anfragen für die blockierbaren Inhalte blockieren.
Dieser Ansatz stellt sicher, dass alle Inhalte in einem sicheren Kontext entweder über einen sicheren Kanal geladen oder blockiert werden, was für Benutzer sicherer ist als die Anzeige einer Mischung aus sicheren und unsicheren Inhalten und weniger störend als das vollständige Blockieren aller unsicheren Inhalte, wodurch Webseiten unbrauchbar werden könnten.
Hinweis: Frühere Versionen der Spezifikation unterteilten gemischte Inhalte in die Kategorien "blockierbar" und "optional blockierbar":
- Blockierbare Inhaltstypen, auch als "aktive gemischte Inhalte" bezeichnet, waren solche, die andere Teile der Webseite ändern konnten, wie Skripte und Stylesheets. Das potenzielle Risiko, wenn diese Dateien verändert werden, ist sehr hoch, und Browser wurden verpflichtet, diese zu blockieren.
- Optional blockierbare Inhaltstypen, auch als "passive gemischte Inhalte" bekannt, konnten andere Inhalte auf der Webseite nicht ändern, wie Bilder, Videos und Audiodateien. Das potenzielle Risiko, diese Dateien zuzulassen, war geringer, sodass Browser diese blockieren, anzeigen oder die Entscheidung dem Benutzer überlassen konnten.
Die Menge an Ressourcentypen, die "aktualisierbare Inhalte" umfassen, wurde aus der Kategorie der "optional blockierbaren" gemischten Inhalte übernommen. Die Erwartung ist, dass jede neue Art von Datei als blockierbarer Inhalt definiert wird und einige aktualisierbare Inhalte in Zukunft blockierbar werden könnten.
Aktualisierbare Inhalte
Aktualisierbare Inhalte sind Anfragen, bei denen eine unsichere Anfrage automatisch in eine sichere Anfrage aktualisiert wird, indem das Ursprungsschema von http auf https geändert wird.
Der Remote-Server antwortet entweder mit der Ressource oder einem Statuscode, der anzeigt, dass sie nicht gefunden wurde.
Die Ressourcentypen in dieser Kategorie sind solche, bei denen das Blockieren der Anfrage riskieren würde, wesentliche Teile des Webs zu unterbrechen. Diese entsprechen derzeit den gemischten Inhaltstypen, die zuvor "optional blockierbar" waren, da sie immer noch auf einigen Websites genutzt werden.
Die folgenden Elemente sind aktualisierbar (außer wenn der URL-Host als IP-Adresse angegeben ist – siehe den folgenden Abschnitt):
<img>bei dem der Ursprung über dassrcAttribut gesetzt ist, einschließlich SVG-Dokumente (aber nicht beim Setzen von Ressourcen mitsrcsetoder<picture>).- CSS-Bildelemente wie:
background-image,border-image, etc. <audio>bei dem der Ursprung mit demsrcAttribut gesetzt ist.<video>bei dem der Ursprung mit demsrcAttribut gesetzt ist.<source>bei dem das Video- oder Ursprungsressource gesetzt ist.
Blockierbare Inhalte
Blockierbare Inhalte werden als "alle gemischten Inhalte, die nicht aktualisierbar sind" definiert.
Dazu gehören HTTP-Anfragen, die von den folgenden Elementen resultieren (diese Liste ist nicht erschöpfend):
<script>bei dem der Ursprung über dassrcAttribut gesetzt ist<link>bei dem der Ursprung imhrefAttribut gesetzt ist und Stylesheets einschließt<iframe>bei dem der Ursprung über dassrcAttribut gesetzt istfetch()AnfragenXMLHttpRequestAnfragen- Alle Fälle in CSS, wo ein
<url>Wert verwendet wird (@font-face,cursor,background-image, usw.). <object>(dataAttribut)Navigator.sendBeacon(urlAttribut)<img>bei dem der Ursprung mitsrcsetoder<picture>gesetzt ist.- Web-Fonts
Gemischte Inhaltsanfragen, die andernfalls aktualisiert würden, werden blockiert, wenn der Host der URL eine IP-Adresse anstelle eines Domainnamens ist.
So wird <img src="http://example.com/image.png"> aktualisiert, aber <img src="http://93.184.215.14/image.png"> wird blockiert.
Beispiele für gemischte Inhaltsanfragen
Gemischte Inhaltsanfragen sind unsichere Anfragen nach Ressourcen von einem sicheren Kontext:
Die folgenden Beispiele zeigen sichere, unsichere und gemischte Inhaltsanfragen:
http://insecure.comlädthttp://also.insecure.com– ist keine gemischte Inhaltsanfrage, da beide Ursprünge unsicher sind.https://secure.comlädthttp://insecure.com– ist eine gemischte Inhaltsanfrage, da die unsichere Ressourcehttp://insecure.comin den sicheren Kontexthttps://secure.comgeladen wird.http://insecure.comlädthttps://secure.comin einem<iframe>, welches wiederumhttp://also.insecure.comlädt – das Laden vonhttps://secure.cominhttp://insecure.comist keine gemischte Inhaltsanfrage (es gibt keine Einschränkung beim Laden eines sicheren Kontexts in einen unsicheren Kontext). Allerdings ist das Laden vonhttp://also.insecure.comin den sicheren Rahmenhttps://secure.comeine gemischte Inhaltsanfrage.https://secure.comrahmt einedata:URL ein, diehttp://insecure.comlädt – dies ist eine gemischte Inhaltsanfrage, dahttps://secure.com(und somitdata:) sicher geladen wurde undhttp://insecure.comunsicher ist.
Gemischte Kontextanfragen können auch aus sicheren Kontexten wie Plugins oder Arbeitern gesendet werden und werden auf die gleiche Weise aktualisiert/blockiert.
Zu beachten ist jedoch, dass Navigationsanfragen aus einem sicheren Kontext, die auf unsichere, zielende, oberste Browsing-Kontexte abzielen, nicht als gemischte Inhalte betrachtet werden, da sie einen neuen Kontext erschaffen, der entweder sicher oder unsicher ist, unabhängig von der Herkunft der Anfrage.
Laden lokal bereitgestellter gemischter Ressourcen
Lokale Ressourcen werden wie HTTPS-Ursprünge als sichere Ursprünge betrachtet.
Dies umfasst file: URLs und Inhalte, die über Loopback-Adressen wie http://127.0.0.1/ oder http://localhost/ zugegriffen werden.
Sie können diese Dateien aus sicheren Kontexten laden, und Sie haben weiterhin einen sicheren Kontext.
Wenn jedoch eine lokale Datei eine unsichere Ressource über http: lädt, wäre dies eine gemischte Inhaltsanfrage.
Die Unterstützung für das Laden lokaler Inhalte kann im Abschnitt Browser-Kompatibilität überprüft werden.
Gemischte Downloads
Ein gemischter Download ist ein Ressourcen-Download von einem sicheren Kontext über eine unsichere Verbindung. Sie sind aus denselben Gründen wie gemischte Inhalte problematisch — Inhalte können von einem Angreifer abgefangen und/oder verändert werden, und es ist für Benutzer nicht offensichtlich, dass dies auf einer sicheren Website passieren könnte.
Zum Beispiel definiert der folgende Code ein <a>-Element, das verwendet werden könnte, um die Seite am unsicheren Ursprung http://example.com/ herunterzuladen.
Wenn dieser Code sich auf einer Seite befindet, die über HTTPS bereitgestellt wird, führt das Speichern des Links zu einem gemischten Download.
<a href="http://example.com/" download>Download</a>
Von Browsern wird erwartet, dass sie gemischte Downloads blockieren, und sichere Websites sollten diese nicht enthalten.
Hinweis: Browser blockieren häufig standardmäßig gemischte Downloads, informieren Benutzer über das Risiko und erlauben ihnen, den Download fortzusetzen oder abzubrechen.
Entwicklerkonsole
Die Entwicklerkonsole zeigt Warnungen an, wenn gemischte Inhalte aktualisiert oder blockiert werden. Diese können verwendet werden, um gemischte Inhalte auf Ihrer Webseite zu debuggen und zu beheben.
Der folgende Bildschirm zeigt die Konsolenwarnung, wenn ein Bild in Firefox aktualisiert wird (Chrome hat eine ähnliche Warnung).

In Browserversionen, die immer noch "optional blockierbare" Inhalte anzeigen, wird ein Symbol verwendet, um anzuzeigen, dass es gemischte Inhalte in den angezeigten Inhalten gibt, zusammen mit einer Konsolenwarnung. Das folgende Bildschirmfoto zeigt das Symbol und die Konsolenwarnung für Firefox, das das Update von gemischten Inhalten unterstützt.

Behebung von gemischten Inhaltsproblemen
Die beste Strategie, um Probleme mit gemischten Inhalten zu vermeiden, besteht darin, alle Inhalte als HTTPS bereitzustellen:
-
Bereitstellung aller Inhalte Ihrer Domain als HTTPS.
-
Machen Sie alle Referenzen zu Ressourcen, die auf Ihrer Domain gehostet werden, zu relativen Links oder HTTPS-Links, einschließlich für Downloads.
-
Wenn Sie Ressourcen auf anderen Sites verwenden, nutzen Sie die HTTPS-Versionen, falls verfügbar.
Die meisten Sites bieten HTTPS-Versionen von geteilten Ressourcen an. Oft ist der einfachste Ansatz, alle
http://Links durchhttps://zu ersetzen und dann Tools wie LinkChecker zu verwenden, um zu überprüfen, dass alle Links funktionieren.
Es gibt verschiedene Möglichkeiten, um zu überprüfen, ob Ihre Seite frei von gemischten Inhalten ist:
- Navigieren Sie auf Ihrer Website und überprüfen Sie die Entwicklerkonsole Ihres Browsers auf Warnungen zu gemischten Inhalten.
- Deaktivieren Sie alle gemischten Inhalte in Ihrem Browser und testen Sie, ob die Seiten wie erwartet funktionieren. Dies ist der Standard für Safari, aber die meisten Browser unterstützen irgendeinen Mechanismus zum Blockieren aller gemischten Inhalte (siehe Kompatibilitätsdaten).
- Verwenden Sie einen Desktop-basierten Webcrawler wie HTTPSChecker oder ein CLI-Tool wie mcdetect, um Ihre Website rekursiv zu überprüfen und Links zu unsicheren Inhalten zu finden.
- Verwenden Sie ein Online-Tool wie Mixed Content Checker um Ihre Seite zu überprüfen.
Spezifikationen
| Specification |
|---|
| Mixed Content> # intro> |
Browser-Kompatibilität
Siehe auch
- CSP:
upgrade-insecure-requestsaktualisiert alle Anfragen auf HTTPS, einschließlich blockierbarer gemischter Inhalte