Controllore di contenuti misti

HTML da analizzare

Rileva le risorse http:// caricate all'interno di una pagina HTTPS.

Avanti

Dopo aver migrato un sito su HTTPS, tag <img>, <script>, <link> o <iframe> che puntano ancora a http://... rompono il lucchetto verde e, nei browser moderni, spesso non si caricano affatto. Inserisci un URL e questo controllore carica la pagina, ispeziona ogni sotto-risorsa (immagini, fogli di stile, script, font, iframe, video, audio) e elenca qualsiasi cosa servita tramite HTTP semplice in modo da poterle correggere prima che gli utenti vedano un avviso di “non completamente sicuro”.

Come funziona la scansione

  1. 1

    Inserisci un URL

    URL HTTPS. Lo scanner segue un reindirizzamento.

  2. 2

    La pagina viene recuperata

    L'HTML viene analizzato per ogni riferimento a sotto-risorse.

  3. 3

    Ogni riferimento viene classificato

    HTTPS, HTTP o relativo al protocollo (`//cdn...`).

  4. 4

    Rapporto raggruppato per tipo

    Contenuto attivo vs. passivo, con classificazione della gravità.

Contenuto misto attivo vs. passivo

I browser trattano due classi in modo diverso:

  • Contenuto misto attivo (script, iframe, fogli di stile, XHR/fetch, worker, WebSocket). Bloccato completamente dai browser moderni. Include: <script>, <link rel="stylesheet">, <iframe>, fetch(), XMLHttpRequest, importScripts().
  • Contenuto misto passivo (immagini, video, manifesti audio). Caricato ma segnalato, il lucchetto cade e la barra degli URL mostra un avviso. Include: <img>, <audio>, <video>, obiettivi action dei moduli.

Perché è importante

  • Fiducia. Un lucchetto rotto comunica “questo sito non è sicuro” agli utenti che se ne accorgono.
  • Funzionalità. Il contenuto attivo bloccato significa che gli script non vengono eseguiti e i fogli di stile non si applicano, le pagine sembrano rotte.
  • SEO. Google preferisce pagine HTTPS; segnali HTTPS rotti danneggiano indirettamente i posizionamenti.
  • Conformità. PCI DSS e molti altri framework di conformità richiedono HTTPS senza contenuti misti per le pagine transazionali.

Fonti comuni

Fonte Correzione tipica
CDN legacy su HTTP Cambia dominio a CDN HTTPS
Codice di incorporamento YouTube / Vimeo obsoleto Aggiorna l’incorporamento alla versione attuale
URL degli script di reti pubblicitarie Usa la versione HTTPS (disponibile da anni)
Font, mappe di terze parti Cambia http://fonts.googleapis.comhttps://
Widget di pulsanti sociali Usa il codice widget attuale
URL di immagini generate dagli utenti Riscrivi al salvataggio; carica tramite proxy alla visualizzazione
URL hardcoded nei post del blog Trova e sostituisci in blocco nel DB

Strategie di correzione

  1. URL relativi al protocollo (//cdn.example.com/a.js). Si carica con il protocollo della pagina corrente. Sicuro per la maggior parte dei CDN ma deprecato, preferisci https://... esplicito.
  2. Riscrivi nel sorgente. Aggiorna i tuoi modelli e contenuti per usare https://. Scansiona il codice sorgente con una regex: http://(?!localhost).
  3. Aggiornamento della Content Security Policy. Content-Security-Policy: upgrade-insecure-requests dice al browser di riscrivere silenziosamente gli URL delle risorse HTTP in HTTPS. Migliore per i siti che non possono controllare ogni URL.
  4. <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> equivalente inline.
  5. Proxy delle risorse solo HTTP attraverso la tua origine HTTPS se l’upstream non ha realmente un endpoint HTTPS (raro oggi).

Cosa trova il controllore

  • Tutti gli URL esterni referenziati in <img>, <script>, <link>, <iframe>, <video>, <audio>, <source>.
  • Attributi action dei moduli.
  • Riferimenti CSS inline url(...) nei blocchi <style>.
  • Non esegue la scansione delle risorse iniettate tramite JavaScript, sono aggiunte a runtime e necessitano di un audit lato browser (il pannello Issues in Chrome DevTools le cattura).

Domande frequenti

Parzialmente. L’intestazione o il meta tag CSP upgrade-insecure-requests dice ai browser di riscrivere automaticamente gli URL delle sotto-risorse HTTP in HTTPS. Funziona quando il server supporta HTTPS; se l’upstream è solo HTTP, la riscrittura fallisce.

No. Solo risorse referenziate in HTML statico. Gli script che creano elementi <img> a runtime non verranno mostrati. Il pannello Issues di Chrome DevTools cattura quelli nel browser.

Sono sicuri per i contenuti misti su pagine HTTPS (ereditano HTTPS). Ma si rompono su strumenti interni solo HTTP o pagine archiviate, e sono deprecati. Preferisci esplicito https://.

Cache del browser. Esegui un hard-refresh (Ctrl+Shift+R / Cmd+Shift+R) o testa in una finestra in incognito per confermare la correzione. I rapporti CSP e gli avvisi della console mostrano lo stato attuale.

Un recuperatore lato server recupera la pagina per l’analisi. L’URL stesso non viene memorizzato oltre la richiesta.

Strumenti correlati

Strumento disponibile in altre lingue