Outil SRI
Calculateur de hash SRI
Collez l'URL d'un script ou d'une feuille de style et obtenez son hash Subresource Integrity pour verrouiller le fichier exact dans votre HTML.
Guide
Comprendre le Subresource Integrity
Le Subresource Integrity (SRI) est l'attribut integrity que vous ajoutez à un script ou une feuille de style chargés depuis un autre hôte, pour que le navigateur rejette le fichier si un CDN sert un jour du code altéré.
Qu'est-ce qu'un hash SRI ?
Un hash SRI est un condensé SHA encodé en base64 des octets exacts d'un fichier. Vous le placez dans l'attribut integrity d'une balise script ou link ; le navigateur hache ce qu'il télécharge, compare, et refuse la ressource à la moindre différence, la traitant comme une erreur réseau.
Il protège contre une menace précise : un hôte tiers ou un CDN qui vous sert du code altéré ou compromis. Comme la valeur est liée au fichier exact, un attaquant qui remplace la ressource ne peut pas la faire exécuter par le navigateur. Lisez l'explication complète dans le guide Subresource Integrity.
<script
src="https://cdn.example.com/app.min.js"
integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
crossorigin="anonymous"></script>Ajoutez l'attribut crossorigin
Pour un fichier sur une autre origine, ajoutez crossorigin="anonymous" à côté de integrity. Un navigateur ne vérifie une ressource cross-origin que si l'hôte autorise la lecture via CORS, un en-tête Access-Control-Allow-Origin. Sans lui, le navigateur ne peut pas vérifier le fichier et ignore l'attribut integrity, c'est pourquoi cet outil vous avertit lorsqu'une URL n'est pas lisible via CORS.
<link
rel="stylesheet"
href="https://cdn.example.com/theme.css"
integrity="sha384-VuArbKap7CY5uykM6oqf+R9GqQ8Kux9rx7HNQlGYl1kPzQho1wx4JwY8wCdgcRRap"
crossorigin="anonymous">Imposer le SRI sur tout votre site
Le SRI est optionnel : vous ajoutez un hash balise par balise. L'ancienne directive CSP require-sri-for l'aurait imposé partout, mais elle n'a jamais été livrée dans un navigateur stable et est abandonnée.
Pour imposer l'intégrité sur tout votre site aujourd'hui, utilisez l'en-tête Integrity-Policy : le navigateur bloque, ou signale, tout script chargé sans SRI valide, transformant une option par balise en une politique applicable. Les deux sont détaillés dans le guide Integrity-Policy.
Integrity-Policy: blocked-destinations=(script)SHA-256, SHA-384 ou SHA-512 ?
Le SRI accepte les mêmes trois algorithmes que la CSP. SHA-384 est le choix le plus courant pour le SRI, mais les trois sont aussi sûrs ici, alors choisissez-en un et appliquez-le systématiquement. Vous pouvez même lister plusieurs hashs sur une balise : le navigateur accepte le fichier si l'algorithme le plus fort qu'il comprend correspond.
Suivez l'intégrité sur chaque page
Un hash SRI verrouille un fichier, CentralCSP les surveille tous. Déployez une Integrity-Policy en report-only et repérez un script tiers altéré dès qu'il change, dans les navigateurs de vos vrais visiteurs.
