Warum Mixed Content auftritt
- Hartkodierte
http://-URLs aus der Zeit vor einer HTTPS-Migration. Altes Markup, CMS-Inhalte oder eine Datenbank gespeicherter Asset-URLs, geschrieben, als die Website noch über einfaches HTTP lief, und nie aktualisiert. - Third-Party-Embeds und Widgets, die weiterhin über HTTP ausliefern. Ein Werbenetzwerk, ein Kommentar-Widget oder ein altes Analytics-Snippet, das seine eigene Auslieferung nie auf HTTPS umgestellt hat.
- CDN- oder Asset-Host-URLs, die bei einer Protokoll-Migration übersehen wurden. Die Hauptdomain wechselte zu HTTPS, aber eine Subdomain oder ein Third-Party-Asset-Host für Bilder oder Schriften wurde nicht zeitgleich aktualisiert.
- Nutzergenerierte Inhalte mit eingefügten HTTP-Links. Ein Nutzer reicht Inhalt ein (ein Forenpost, eine Produktbewertung, ein CMS-Feld) mit einer
http://-Bild- oder -Embed-URL, die unverändert gerendert wird.
So findet man jede Instanz
Scanverra erkennt Mixed Content, indem es Ihre Seite in einem echten Browser lädt und deren tatsächliche Netzwerkaktivität erfasst - sowohl der Browser-Test als auch der Security-Scan markieren jede Anfrage, die mit http:// beginnt, während die Seite selbst über HTTPS ausgeliefert wird. Da dies auf echten erfassten Netzwerkanfragen beruht und nicht auf einem statischen Scan Ihres HTML-Quelltexts, erkennt es auch Ressourcen, die erst dynamisch per JavaScript nach dem Rendering geladen werden, nicht nur solche, die direkt im Markup hartkodiert sind.
So behebt man es
1. Hartkodierte http://-URLs durch https:// ersetzen
1<img src="http://cdn.example.com/testimonial-1.jpg" alt="Customer headshot" />1<img src="https://cdn.example.com/testimonial-1.jpg" alt="Customer headshot" />2. upgrade-insecure-requests als Absicherung hinzufügen
Diese CSP-Direktive weist den Browser an, verbleibende http://-Anfragen automatisch vor dem Senden in https:// umzuschreiben, und fängt so übersehene URLs ab - funktioniert allerdings nur, wenn die Ressource an diesem Host tatsächlich über HTTPS erreichbar ist:
1Content-Security-Policy: upgrade-insecure-requests3. Third-Party-Embeds gezielt prüfen
Third-Party-Skripte und Widgets sind die häufigste Quelle für Mixed Content, die Sie nicht direkt kontrollieren - prüfen Sie in der Dokumentation jedes einzelnen, ob eine HTTPS-Embed-URL angeboten wird, und entfernen Sie jedes, das keine anbietet.
4. Protokoll in nutzergenerierten Inhalten bereinigen oder umschreiben
Können Nutzer Inhalte mit URLs einreichen, schreiben Sie http:// beim Rendern in https:// um (oder lehnen Sie die Einreichung ab), statt einfach das eingefügte Protokoll zu übernehmen.
Wie Scanverra dies erkennt
Sowohl Scanverras Browser-Test als auch dessen Security-Scan erfassen die echten Netzwerkanfragen Ihrer Seite in einem live laufenden Browser und markieren jede, die mit http:// beginnt, auf einer über HTTPS ausgelieferten Seite - eine echte Laufzeitprüfung gegen tatsächlichen Traffic, keine Textsuche im Quelltext.