L'utente ha fornito immagini su un sito HTTPS senza avvisi di contenuto misto


9

Ho un forum in cui, come la maggior parte dei forum, gli utenti possono pubblicare immagini. Ho impostato HTTPS su tutto il sito, ma ovviamente la maggior parte delle immagini esterne sono collegate tramite HTTP, non HTTPS. Quindi il caricamento del forum su HTTPS mostra avvisi di contenuto misto, ecc.

Quali sono alcune strategie per affrontare questo problema? Alcune immagini provengono dal mio sito, quindi posso riscrivere quegli URL per utilizzare HTTPS poiché so che funzionerà. Ma per gli URL esterni molti non funzionano con HTTPS, quindi non posso eseguire una riscrittura generale.

Potrei riscrivere immagini non sicure su collegamenti anziché immagini incorporate, ma ciò non sembra eccezionale e può essere fonte di confusione per gli utenti. Qualche soluzione migliore?


2
Potresti usare camo ...
wb9688,

2
Google non ha risolto questo problema per la ricerca di immagini. La ricerca di immagini è "non sicura:" i.imgur.com/8XVTQsi.png
Stephen Ostermiller

2
Vedi anche su StackOverflow:
Gestione del

1
Meglio non lo so, e potrebbe essere in contrasto con la legislazione sul copyright, ma una soluzione tecnica sarebbe quella di fare una copia dell'immagine e servire da un dominio sotto il tuo controllo, su HTTPS ...
un CVn

1
Il modo sbagliato: al momento del salvataggio / modifica è possibile applicare la logica per riscrivere tutti i dati che si intende siano src="http://someimage.jpg"relativi al relativo strutturato src="//someimage.jpg"... o semplicemente convalidarli. Se si desidera un rigoroso lucchetto verde (in cui un'immagine insicura non vincerà il lucchetto) applicare HSTS. Quindi nell'interfaccia dell'editor prendere nota che le immagini attualmente devono essere disponibili tramite HTTPS, altrimenti non verranno visualizzate affatto. Qualcosa come "Oops, hai commesso un errore. Per prevenire abusi e attacchi MITM, tutti i media devono utilizzare HTTPS. Torna indietro e correggilo o scegli un altro fornitore di immagini".
Dhaupin,

Risposte:



1

Ho appena realizzato che non ho mai pubblicato la mia soluzione. La risposta fornita nel commento di Stephen è ciò che mi ha risolto. In breve, ho creato uno script proxy che procede come segue:

  1. Se l'immagine è https, lasciarla sola.
  2. Se l'immagine è http e da un sito noto per supportare https (ad esempio il mio sito, imgur.com ecc.), Riscrivi su https.
  3. Altrimenti se l'immagine è http, riscriverla per usarla http://example.com/imgproxy?img=ORIGINALURL&hash=KEY

Quindi lo script proxy recupera l'immagine HTTP, la memorizza nella cache in locale e genera i dati dell'immagine. Su richieste ripetute genera direttamente i dati memorizzati nella cache. La risposta SO collegata descrive l'hash di sicurezza e altri dettagli.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.