Der Benutzer hat Bilder auf einer HTTPS-Site ohne Warnungen vor gemischten Inhalten beigesteuert

9

Ich habe ein Forum, in dem Benutzer, wie in den meisten Foren, Bilder posten können. Ich habe HTTPS auf der gesamten Site eingerichtet, aber natürlich werden die meisten externen Bilder über HTTP und nicht über HTTPS verknüpft. Wenn Sie das Forum also über HTTPS laden, werden Warnungen zu gemischten Inhalten usw. angezeigt.

Welche Strategien gibt es, um dieses Problem anzugehen? Einige der Bilder stammen von meiner eigenen Website, sodass ich diese URLs neu schreiben kann, um HTTPS zu verwenden, da ich weiß, dass es funktionieren wird. Bei externen URLs funktionieren viele jedoch nicht mit HTTPS, sodass ich kein pauschales Umschreiben durchführen kann.

Ich könnte nicht sichere Bilder in Links anstatt in Inline-Bilder umschreiben, aber das sieht nicht gut aus und kann für Benutzer verwirrend sein. Irgendwelche besseren Lösungen?

DisgruntledGoat
quelle
2
Sie konnten verwenden camo ...
wb9688
2
Google hat dies für die Bildsuche nicht gelöst. Die Bildsuche ist "nicht sicher": i.imgur.com/8XVTQsi.png
Stephen Ostermiller
2
Siehe auch auf StackOverflow: Umgang mit HTTP-Inhalten auf HTTPS-Seiten
Stephen Ostermiller
1
Besser, ich weiß es nicht, und es könnte gegen das Urheberrecht verstoßen, aber eine technische Lösung wäre, eine Kopie des Bildes zu erstellen und von einer Domain unter Ihrer Kontrolle über HTTPS zu dienen ...
ein Lebenslauf vom
1
Der schlechte Weg des Mannes: Beim Speichern / Bearbeiten können Sie Logik anwenden, um alle Daten, die src="http://someimage.jpg"für die relative Struktur vorgesehen sind, neu zu schreiben src="//someimage.jpg"... oder sie einfach zu validieren. Wenn Sie eine strikte grüne Sperre wünschen (bei der ein unsicheres Bild Ihre Sperre nicht beeinträchtigt), erzwingen Sie HSTS. Notieren Sie dann in der Editor-Oberfläche, dass Bilder derzeit über HTTPS verfügbar sein müssen, da sie sonst überhaupt nicht angezeigt werden. Etwas wie "Ups, Sie haben einen Fehler gemacht. Um Missbrauch und MITM-Angriffe zu verhindern, müssen alle Medien HTTPS verwenden. Gehen Sie zurück und korrigieren Sie es oder wählen Sie einen anderen Bildanbieter."
Dhaupin

Antworten:

1

Es ist nicht möglich, unsichere Ressourcen auf einer sicheren Seite zu haben und keine Warnung zu gemischten Inhalten zu erhalten.

Für Benutzeragenten, die dies unterstützen, ist die upgrade-insecure-requestsAnweisung eine Anweisung, um zu versuchen, die Ressource über https zu laden, oder um es nicht zu versuchen.

Andere Benutzeragenten ignorieren die Anweisung und laden weiterhin die unsicheren Ressourcen.

In diesem Artikel auf der Google Developers-Website werden diese und andere Optionen erläutert.

Robert K. Bell
quelle
1

Ich habe gerade festgestellt, dass ich meine Lösung nie veröffentlicht habe. Die Antwort in Stephens Kommentar hat es für mich gelöst. Kurz gesagt, ich habe ein Proxy-Skript erstellt, das Folgendes ausführt:

  1. Wenn das Bild https ist, lassen Sie es in Ruhe.
  2. Wenn das Bild http ist und von einer Site stammt, von der bekannt ist, dass sie https unterstützt (z. B. meine eigene Site, imgur.com usw.), schreiben Sie erneut in https.
  3. Wenn das Bild http ist, schreiben Sie es zur Verwendung neu http://example.com/imgproxy?img=ORIGINALURL&hash=KEY

Anschließend ruft das Proxy-Skript das HTTP-Image ab, speichert es lokal zwischen und gibt die Image-Daten aus. Bei wiederholten Anfragen werden die zwischengespeicherten Daten direkt ausgegeben. Die verknüpfte SO-Antwort beschreibt den Sicherheits-Hash und andere Details.

DisgruntledGoat
quelle