Una pagina presenta contenuti misti quando il codice HTML iniziale viene caricato tramite una connessione HTTPS sicura, mentre altre risorse (ad esempio immagini, video, fogli di stile e script) vengono caricate tramite una connessione HTTP non sicura. Il nome si riferisce alla combinazione di contenuti HTTP e HTTPS in un'unica pagina.
La richiesta di sottorisorse che utilizzano il protocollo HTTP non sicuro riduce la sicurezza della pagina, in quanto queste richieste sono vulnerabili ad attacchi sul percorso, in cui un utente malintenzionato intercetta una connessione di rete e visualizza o modifica la comunicazione tra due parti. Utilizzando queste risorse, i malintenzionati possono monitorare gli utenti e sostituire i contenuti su un sito web e, nel caso di contenuti misti attivi, possono assumere il controllo completo della pagina, non solo delle risorse non sicure.
Anche se molti browser segnalano avvisi di contenuti misti all'utente, spesso il report è troppo tardi: le richieste non sicure sono già state eseguite e la sicurezza della pagina è stata compromessa.
La maggior parte dei browser ora blocca i contenuti misti per motivi di sicurezza. Modifica le richieste di contenuti non sicuri in contenuti protetti per assicurarti che la pagina continui a caricarsi correttamente.
I due tipi di contenuti misti
Esistono due tipi di contenuti misti: attivi e passivi.
I contenuti misti passivi, tra cui immagini, video e audio, non interagiscono con il resto della pagina, pertanto un attacco man in the middle si limita a ciò che può fare se intercetta o modifica i contenuti.
I contenuti misti attivi interagiscono con la pagina nel suo complesso. Sono inclusi script, fogli di stile, iframe e qualsiasi altro codice che il browser può scaricare ed eseguire. Gli attacchi ai contenuti misti attivi consentono a un utente malintenzionato di fare quasi tutto sulla pagina.
Contenuti misti passivi
I contenuti misti passivi rappresentano meno un rischio rispetto ai contenuti misti attivi, ma questo rischio esiste ancora. Ad esempio, un utente malintenzionato può:
- Intercetta le richieste HTTP relative alle immagini sul tuo sito e scambia o sostituisci queste immagini.
- Sostituisci le immagini sui pulsanti in modo che gli utenti le confondano ed, ad esempio, elimina i contenuti che intendevano salvare.
- Deteriora il tuo sito sostituendo le tue immagini con contenuti pornografici.
- Sostituisci le immagini prodotto con annunci per qualcos'altro.
Anche se l'utente malintenzionato non modifica i contenuti del sito, può monitorare gli utenti tramite richieste di contenuti misti. Possono anche identificare le pagine visitate da un utente e i prodotti che visualizza in base alle immagini o ad altre risorse caricate dal browser.
In presenza di contenuti misti passivi, la maggior parte dei browser indica nella barra degli indirizzi che la pagina non è sicura, anche quando viene caricata tramite HTTPS. Puoi osservare questo comportamento in questa demo.
Fino a poco tempo fa, i contenuti misti passivi venivano caricati in tutti i browser, in quanto il loro blocco avrebbe causato problemi a molti siti web. La situazione sta iniziando a cambiare, pertanto è fondamentale aggiornare le istanze di contenuti misti sul tuo sito.
In alcuni casi, Chrome aggiorna automaticamente i contenuti misti passivi. Ciò significa che se un asset è stato codificato come HTTP, ma è disponibile tramite HTTPS, il browser carica la versione HTTPS. Se non è disponibile una versione protetta, l'asset non viene caricato.
Ogni volta che Chrome rileva contenuti misti o esegue l'upgrade automatico dei contenuti misti passivi, registra messaggi dettagliati nella scheda Problemi in DevTools per consigliarti come risolvere il problema specifico.
Contenuti misti attivi
I contenuti misti attivi rappresentano una minaccia maggiore rispetto ai contenuti misti passivi. Un utente malintenzionato può intercettare e riscrivere i contenuti attivi, utilizzandoli per assumere il pieno controllo della tua pagina o perfino dell'intero sito web. Ciò consente di modificare qualsiasi aspetto della pagina, tra cui la visualizzazione di contenuti diversi, il furto delle password degli utenti o di altre credenziali di accesso, il furto dei cookie di sessione degli utenti o il reindirizzamento dell'utente a un sito completamente diverso.
A causa dei rischi elevati di contenuti misti attivi, la maggior parte dei browser blocca già questo tipo di contenuti per impostazione predefinita per proteggere gli utenti, ma il comportamento varia a seconda del fornitore e della versione del browser.
Questa demo mostra esempi di contenuti misti attivi. Carica l'esempio tramite HTTP per visualizzare i contenuti bloccati quando carichi l'esempio tramite HTTPS. I contenuti bloccati sono descritti in dettaglio anche nella scheda Problemi in DevTools.
La specifica per i contenuti misti
I browser seguono la specifica dei contenuti misti, che definisce le categorie dei contenuti bloccabili facoltativi e dei contenuti bloccabili.
Una risorsa si qualifica come contenuto bloccabile facoltativamente "quando il rischio di consentire l'utilizzo di contenuti misti è sovrastimato dal rischio di danneggiare parti significative del web". Si tratta di un sottoinsieme di contenuti misti passivi.
Tutti i contenuti misti che non sono facoltativamente bloccabili sono considerati bloccabili e devono essere bloccati dal browser.
Negli ultimi anni, l'utilizzo di HTTPS è aumentato drasticamente ed è diventato l'impostazione predefinita evidente sul web. In questo modo è più fattibile per i browser prendere in considerazione la possibilità di bloccare tutti i contenuti misti, anche i tipi di sottorisorse definiti nella specifica per i contenuti misti come facoltativamente bloccabili.
Browser meno recenti
Alcuni visitatori potrebbero utilizzare browser meno recenti. Versioni diverse del browser di fornitori diversi trattano i contenuti misti in modo diverso. Nel peggiore dei casi, le versioni e i browser meno recenti non bloccano affatto il contenuto misto, il che non è sicuro per l'utente.
Caricando tutte le tue risorse in modo sicuro e risolvendo i problemi con i contenuti misti, ti assicuri che i tuoi contenuti siano visibili e proteggi gli utenti da contenuti pericolosi che i browser meno recenti potrebbero non bloccare.