← Tutti i controlli
SicurezzaGravità tipica: Medio

Scanner di contenuto misto

Rileva risorse caricate via HTTP su una pagina HTTPS, che viaggiano non cifrate e rompono il lucchetto.

Cosa controlla

Questo scanner rileva risorse come immagini, script o stili che la tua pagina HTTPS carica su HTTP non cifrato. Questa mescolanza è nota come contenuto misto. Lo scanner esamina i riferimenti della pagina per trovare quali non usano HTTPS.

Perché è importante

Il contenuto misto viaggia senza cifratura, quindi può essere intercettato o manomesso anche se il resto della pagina è sicuro. Inoltre, il browser può bloccare quelle risorse o togliere il lucchetto, dando l'impressione di un sito insicuro. Nel caso peggiore, uno script caricato via HTTP compromette l'intera pagina.

Come risolverlo

Cambia tutti i riferimenti alle risorse in modo che inizino con https invece di http. Fai particolare attenzione ai link verso librerie esterne, immagini e vecchi font. Se una risorsa esterna non offre HTTPS, cerca un'alternativa o ospitala tu stesso in modo sicuro.

Come funziona questo controllo

Scanaris legge l'HTML della tua pagina servita in HTTPS e cerca riferimenti a risorse che iniziano con http://: script, fogli di stile, iframe, immagini, video, audio e font. Li separa in due gruppi. Il contenuto misto attivo (script, stili, iframe) apre un rilievo di gravità media, perché quelle risorse possono eseguire codice o modificare la pagina. Il contenuto misto passivo (immagini, video, audio) apre un rilievo di gravità bassa: non esegue nulla, ma viaggia in chiaro e rompe il lucchetto. Vengono esaminati solo i riferimenti presenti nell'HTML iniziale; le risorse aggiunte dopo via JavaScript non vengono viste per questa via.

Perché è importante

Uno script caricato in HTTP dentro una pagina HTTPS è il caso peggiore: chi controlla la rete può sostituirlo con un altro ed eseguire ciò che vuole nella tua pagina, con la sessione dell'utente. Per questo i browser moderni lo bloccano direttamente, e il tuo sito si rompe in silenzio in quella parte. Per le immagini, il browser le carica ma toglie il lucchetto o mostra un avviso «non sicuro», che l'utente vede. In entrambi i casi il messaggio è lo stesso: la pagina dice di essere sicura e non lo è del tutto.

Da dove viene

Quasi sempre da codice vecchio: URL copiati da un tutorial o da un template di anni fa, una libreria collegata da una CDN che all'epoca non aveva HTTPS, immagini di un blog migrato, o un campo del database con l'URL completo di un'immagine caricata quando il sito era ancora in HTTP. In WordPress è tipico dopo un passaggio da HTTP a HTTPS senza aggiornare gli URL salvati.

Come risolvere

  • Cambia i riferimenti in https:// o in percorsi relativi (/images/foto.jpg), che ereditano il protocollo della pagina. È la soluzione corretta e definitiva.
  • Se una risorsa esterna non ha HTTPS, scaricala e servila dal tuo dominio, o trova un'altra fonte. Nel 2026 quasi nulla di legittimo è ancora solo in HTTP.
  • In WordPress, aggiorna gli URL salvati nel database con uno strumento di cerca-e-sostituisci che rispetti la serializzazione, e controlla gli URL del sito nelle impostazioni generali.
  • Come rete di sicurezza, la direttiva CSP upgrade-insecure-requests dice al browser di convertire automaticamente le richieste http:// della tua pagina in https://. Aiuta mentre pulisci il codice, ma non sostituisce la pulizia: la risorsa deve esistere in HTTPS perché funzioni.
Content-Security-Policy: upgrade-insecure-requests

Verifica che sia risolto

curl -s https://tuodominio.it | grep -oE '(src|href)="http://[^"]+"' | sort -u

Non deve uscire nulla. Poi apri la pagina con la console del browser: qualsiasi risorsa mista caricata via JavaScript appare lì come avviso o blocco.

Domande frequenti

La mia pagina carica bene e ha il lucchetto. Perché viene segnalato?

Perché il browser forse blocca la risorsa in silenzio o la porta in HTTPS da solo. Il riferimento nel tuo HTML resta in http:// e altri client (bot, browser vecchi, e-mail) non fanno quella correzione.

Gli URL che iniziano con // sono contenuto misto?

No. Gli URL relativi al protocollo ereditano quello della pagina e caricano in HTTPS su HTTPS. Comunque, oggi si consiglia di scrivere direttamente https://.

Un link <a href="http://…"> conta?

No. Un link non carica nulla nella tua pagina; porta solo l'utente altrove. Il contenuto misto è ciò che la pagina incorpora.

Verificalo sul tuo sito

Scansiona il tuo sito gratis e scopri se questo e altri 44 controlli passano, con un prompt di fix per ogni problema.

Scansiona il mio sito gratis

Dal blog

Controlli correlati