Hash di integrità delle risorse (SRI)
Subresource Integrity Hash
Calcola l’attributo Subresource Integrity (sha256, sha384 o sha512) per uno script o un foglio di stile che incolli o trascini qui.
Uno `<script src>` che punta a una CDN è un permesso permanente perché quella CDN esegua qualunque codice le pare nei browser di chi usa il sito. Un attributo Subresource Integrity lo revoca: il browser si rifiuta di eseguire un file il cui hash non corrisponde a quello fissato.
Trascina qui il file esatto
Lo script o il foglio di stile che servirai davvero. L’hash è calcolato così com’è.
L’hash è calcolato con WebCrypto nel tuo browser: è lo stesso digest che il browser andrà a controllare. Non c’è un campo URL, ed è voluto: scaricare un file remoto da questa pagina per calcolarne l’hash finirebbe bloccato da CORS oppure diventerebbe un vettore SSRF, e un browser non può risolvere e poi fissare un host come fa un server. Metti qui il file che servirai davvero.
Come si usa
Dargli il file oppure l’URL
Si trascina esattamente il file che verrà distribuito, oppure si fa recuperare un URL. L’hash è calcolato sui byte, quindi un file e un URL che differiscono di un ritorno a capo danno attributi diversi.
Copiare l’attributo per intero
L’output è `integrity="sha384-…"`. Va incollato sul tag insieme a `crossorigin="anonymous"`: senza quello una risorsa di origine diversa è opaca e l’integrità non si può verificare.
Fissare una versione, non un’etichetta mobile
Un attributo di integrità puntato a un URL `@latest` rompe il sito il giorno in cui la CDN pubblica. Va puntato a una versione esatta e vanno aggiornati insieme.
Domande frequenti
Quale algoritmo conviene usare?
sha384 è la scelta consueta ed è quello che pubblicano la maggior parte delle CDN. sha256 è accettato e sha512 è più robusto, ma la differenza non è il punto debole di questo schema: lo è fissare la versione sbagliata.
Dopo averlo aggiunto lo script ha smesso di caricarsi.
Quasi sempre è una di tre cose: il file è cambiato sulla CDN, manca `crossorigin="anonymous"`, oppure l’hash è stato preso da una build diversa da quella che viene servita (per esempio un file minificato al posto di uno non minificato).
L’SRI protegge da uno script che era ostile fin dall’inizio?
No. Garantisce che si ricevano i byte che sono stati fissati, e nient’altro. Se la versione fissata era già dotata di backdoor, l’SRI consegna fedelmente la backdoor tutte le volte.
Può ricevere da
Checksum di un file
File Checksum
Calcola l’hash di file di qualsiasi dimensione in un’unica passata in streaming e confronta il risultato con il valore atteso che incolli.
Creazione di una policy CSP
CSP Builder
Costruisce una Content-Security-Policy da un modulo guidato o da un rapporto di violazione, e spiega ogni direttiva.
Generatore di password
Password Generator
Genera password casuali con regole di lunghezza, insieme di caratteri ed esclusione dei caratteri ambigui, anche a blocchi.
Generatore di passphrase
Passphrase Generator
Costruisce una passphrase in stile diceware da un elenco di parole, mostrando l’entropia in bit.
Dopo
Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.
Creazione di una policy CSP
CSP Builder
Costruisce una Content-Security-Policy da un modulo guidato o da un rapporto di violazione, e spiega ogni direttiva.
Checksum di un file
File Checksum
Calcola l’hash di file di qualsiasi dimensione in un’unica passata in streaming e confronta il risultato con il valore atteso che incolli.
Analisi delle intestazioni di sicurezza
Security Header Scan
Dà un voto alle intestazioni HSTS, CSP, di frame, di referrer e di permessi di un sito e mostra che cosa aggiungere.
Controllo di un link sospetto
Suspicious URL Check
Esamina la forma di un link prima che tu lo apra — caratteri sosia, host scritti come indirizzo IP, trucchi con la @, sottodomini profondi, porte insolite, servizi di accorciamento — e su richiesta ne segue i redirect e cerca la data di registrazione del dominio. Nessuna banca dati di reputazione.
Codificatore e decodificatore Base64
Base64 Encoder & Decoder
Codifica e decodifica in Base64 e Base64URL testo o file, trattando correttamente l’UTF-8.
Verifica delle password compromesse
Breach Check
Controlla se una password compare nei dati di violazione di Have I Been Pwned, inviando dal browser solo i primi cinque caratteri del suo hash SHA-1 (k-anonimato).