Caricare una libreria da un CDN è pratico, ma introduce una dipendenza esterna. Subresource Integrity (SRI) consente al browser di verificare che il file ricevuto corrisponda esattamente all’impronta prevista.
Subresource Integrity (SRI): verificare l'integrità delle risorse esterne
Scopri come SRI usa un'impronta crittografica per verificare che uno script o un foglio di stile esterno corrisponda al file previsto.
Mostra indice
Il principio
Si calcola un’impronta crittografica di una versione precisa del file e la si aggiunge all’attributo integrity del tag interessato. Se il contenuto scaricato non produce la stessa impronta, il browser rifiuta di utilizzarlo.
Il generatore di hash SRI permette di preparare questo valore localmente.
SRI è adatto alle risorse stabili
Il meccanismo funziona bene per una risorsa versionata e immutabile. Se il fornitore modifica il file mantenendo lo stesso URL, l’impronta cambia e la risorsa viene bloccata. È proprio il comportamento desiderato per garantire l’integrità, ma va integrato nel processo di aggiornamento.
crossorigin può essere necessario
Per risorse provenienti da un’altra origine, la configurazione CORS e l’attributo crossorigin devono essere compatibili con il caricamento SRI. Occorre quindi verificare il comportamento reale, non limitarsi a copiare un’impronta.
SRI e CSP sono complementari
La CSP risponde soprattutto alla domanda «quali origini e contenuti sono autorizzati?». SRI risponde a «questo file specifico corrisponde alla versione prevista?». Un’origine autorizzata può comunque servire un file modificato; SRI aggiunge quindi una verifica di integrità.
Per comprendere la differenza tra impronta, cifratura e confronto, prosegui con la guida Hash e integrità.
Questo articolo ti è stato utile?
Fonti e riferimenti
- W3C — Subresource Integrity (si apre in una nuova scheda)Pagina in inglese
- MDN — Subresource Integrity (si apre in una nuova scheda)Pagina in inglese