Il contenuto misto si verifica quando i siti protetti con TLS contengono elementi caricati tramite il protocollo HTTP non sicuro. Ciò crea una vulnerabilità che i malintenzionati possono sfruttare.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
Con TLS (noto anche come SSL), la comunicazione Internet è crittografata, creando un'esperienza di navigazione più sicura. Gli utenti possono identificare facilmente i siti crittografati tramite TLS perché hanno "https://" nell'URL anziché "http://". Ma in alcuni casi, un sito HTTPS può contenere anche alcuni elementi caricati utilizzando il protocollo HTTP in chiaro. Ciò crea una condizione nota come contenuto misto, a volte indicato come "HTTP su HTTPS".
Con i contenuti misti, gli utenti avranno l'impressione di trovarsi su una connessione sicura e crittografata perché si trovano su un sito protetto da HTTPS, ma gli elementi non crittografati della pagina creano vulnerabilità, esponendo gli utenti ad attività dannose come tracciamento non autorizzato e attacchi di interposizione. La gravità della vulnerabilità dipende dal fatto che il contenuto misto sia passivo o attivo.
Contenuto misto passivo/visualizzato: in questo caso, il contenuto HTTP non crittografato è limitato agli elementi incapsulati sul sito che non possono interagire con il resto della pagina, ad esempio immagini o video. Ad esempio, un autore di un attacco può bloccare o sostituire un'immagine caricata tramite HTTP, ma non sarebbe in grado di modificare il resto della pagina.
Contenuto misto attivo: in questo caso, gli elementi o le dipendenze che possono interagire e modificare l'intera pagina Web vengono forniti tramite HTTP. Tra queste rientrano dipendenze come file JavaScript e richieste API.
I contenuti misti attivi rappresentano una minaccia più grave rispetto ai contenuti misti passivi/visualizzati; quando compromessi, consentono a un aggressore di assumere il controllo di un'intera pagina Web, raccogliere input sensibili dell'utente, come credenziali di accesso, fornire all'utente una pagina falsificata o reindirizzare l'utente al sito di un aggressore.
La maggior parte dei browser Web moderni visualizza avvisi nella console per sviluppatori per i contenuti misti e blocca i tipi di contenuti misti più pericolosi. Ogni browser ha le sue regole, ma in genere è molto più probabile che i contenuti misti attivi vengano bloccati.
Sebbene i contenuti misti passivi/visualizzati rappresentino una minaccia minore, offrono comunque agli aggressori l'opportunità di compromettere la privacy e monitorare le attività degli utenti. Inoltre, poiché molti browser consentono alcune forme di contenuto misto passivo e forniscono agli utenti avvisi sui contenuti misti solo nella console per sviluppatori, molti utenti non si accorgeranno di essere esposti a contenuti misti.
Particolarmente vulnerabili sono gli utenti che utilizzano browser Web obsoleti, poiché questi browser potrebbero non bloccare affatto i contenuti misti.
Purtroppo un gran numero di siti Web popolari offrono contenuti misti in una forma o nell'altra. Un browser Web che bloccasse tutti i contenuti misti fornirebbe ai propri utenti una versione molto limitata del Web. Finché un numero maggiore di siti Web non risolverà questo problema, i browser dovranno trovare un compromesso, consentendo alcune delle forme meno gravi di contenuto misto.
Gli sviluppatori Web hanno la responsabilità di eliminare i contenuti misti. Nel corso del tempo, i browser Web sono diventati sempre più restrittivi per quanto riguarda i contenuti misti e questa tendenza è destinata a continuare. È quindi fondamentale che gli sviluppatori eliminino i contenuti misti se vogliono che i browser Web continuino a visualizzare il loro sito.
La soluzione al problema dei contenuti misti è piuttosto semplice: gli sviluppatori Web devono assicurarsi che ogni risorsa sulla loro pagina venga caricata tramite HTTPS. Nella pratica, questo può rivelarsi complicato, poiché i siti Web moderni spesso caricano diverse risorse da luoghi diversi.
Uno strumento utile per gli sviluppatori che desiderano individuare tutti i casi di contenuto misto sulle loro pagine è la console per sviluppatori di Google Chrome. Gli sviluppatori possono anche controllare il loro codice sorgente per istanze di risorse, come chiamate API e librerie, caricate tramite un URL "http://". In alcuni casi, la soluzione è semplicemente sostituire l'URL "http://" con "https://". Ma prima è necessario verificare che sia disponibile una versione HTTPS di quella risorsa. Se non è disponibile una versione crittografata della risorsa, sarà necessario sostituirla o rimuoverla del tutto.