Mixed Content (gemischte Inhalte) liegt vor, wenn eine über HTTPS geladene Seite einzelne Ressourcen wie Bilder, Skripte oder Stylesheets über HTTP nachlädt. Dadurch können Angreifer diese Ressourcen auf dem Übertragungsweg einsehen oder verändern.
Wie gehen Browser damit um?
MDN unterscheidet zwei Gruppen. Upgradbare Inhalte wie <img>, <audio>, <video> und CSS-Hintergrundbilder fordert der Browser automatisch per HTTPS an. Das gilt nicht, wenn die URL eine IP-Adresse statt eines Domainnamens enthält, dann wird blockiert. Blockierbare Inhalte wie <script>, Stylesheets, <iframe>, fetch()-Aufrufe und Webfonts blockiert der Browser vollständig.
Blockierte Ressourcen fehlen auf der Seite, sie kann dadurch fehlerhaft oder unvollständig dargestellt werden. Eine Aussage von Google, dass Mixed Content das Ranking beeinflusst, liegt in den genutzten Quellen nicht vor.
Wie findet man Mixed Content?
web.dev empfiehlt, den Quellcode nach http:// in Ressourcen-Tags zu durchsuchen und die Warnungen in den Browser-DevTools zu prüfen. Bei großen Websites lassen sich Verstöße über Content-Security-Policy-Reporting sammeln.
Die Behebung besteht darin, Ressourcen per HTTPS einzubinden. Als Zwischenlösung kann der Header Content-Security-Policy: upgrade-insecure-requests Browser anweisen, HTTP-Anfragen vor dem Senden auf HTTPS umzustellen.
Beispiel
<!-- HTTPS-Seite lädt ein Bild über HTTP: wird automatisch hochgestuft -->
<img src="http://example.com/bild.png">
<!-- HTTPS-Seite lädt ein Skript über HTTP: wird blockiert -->
<script src="http://example.com/skript.js"></script>
Häufige Fehler
- Nach einem HTTPS-Umzug stehen in Datenbank oder Templates weiterhin absolute
http://-URLs. - Eingebundene Skripte oder Widgets von Drittanbietern laufen weiter über HTTP.
Quellen
- Mixed content – MDN Web Docsdeveloper.mozilla.org
- Probleme mit gemischten Inhalten beheben – web.devweb.dev
Stand: