Empreinte d’intégrité de sous-ressource
Subresource Integrity Hash
Calcule l’attribut Subresource Integrity (sha256, sha384 ou sha512) pour un script ou une feuille de style que vous collez ou déposez.
Un `<script src>` qui pointe vers un CDN est une autorisation permanente donnée à ce CDN d’exécuter le code de son choix dans les navigateurs de vos utilisateurs. Un attribut Subresource Integrity la révoque : le navigateur refuse d’exécuter un fichier dont l’empreinte ne correspond pas à celle que vous avez épinglée.
Déposez le fichier exact
Le script ou la feuille de style que vous allez servir. Il est haché tel quel.
Haché avec WebCrypto dans votre navigateur : c’est l’empreinte même que le navigateur vérifiera. Il n’y a pas de champ URL, et c’est volontaire : aller chercher un fichier distant depuis cette page pour le hacher serait bloqué par CORS ou deviendrait un vecteur SSRF, et un navigateur ne sait pas résoudre puis épingler un hôte comme le fait un serveur. Mettez ici le fichier que vous servez.
Comment s’en servir
Donnez-lui le fichier ou l’URL
Déposez le fichier exact que vous livrerez, ou faites charger une URL. L’empreinte porte sur les octets, donc un fichier et une URL qui diffèrent d’un saut de ligne donnent des attributs différents.
Copiez l’attribut entier
La sortie est `integrity="sha384-…"`. Collez-la sur la balise avec `crossorigin="anonymous"` — sans cela, une ressource d’une autre origine est opaque et l’intégrité ne peut pas être vérifiée.
Épinglez une version, pas une étiquette mouvante
Un attribut d’intégrité contre une URL en `@latest` casse le site le jour où le CDN publie. Pointez une version exacte et mettez les deux à jour ensemble.
Questions fréquentes
Quel algorithme employer ?
sha384 est le choix habituel et celui que publient la plupart des CDN. sha256 est accepté et sha512 est plus fort, mais la différence n’est pas le point faible de ce dispositif : épingler la mauvaise version l’est.
Le script a cessé de se charger après que je l’ai ajouté.
Presque toujours l’une de trois choses : le fichier a changé sur le CDN, `crossorigin="anonymous"` manque, ou l’empreinte a été prise sur une autre version que celle qui est servie (un fichier minifié contre un non minifié, par exemple).
SRI protège-t-il contre un script compromis qui était hostile depuis le début ?
Non. Il garantit que vous recevez les octets que vous avez épinglés, rien de plus. Si la version que vous avez épinglée était déjà piégée, SRI livre fidèlement la porte dérobée à chaque fois.
À alimenter depuis
Somme de contrôle de fichier
File Checksum
Hache un fichier de n’importe quelle taille en une passe de lecture en flux et compare le résultat à la valeur attendue que vous collez.
Générateur de CSP
CSP Builder
Construit une Content-Security-Policy à partir d’un formulaire guidé ou d’un rapport, et explique chaque directive.
Générateur de mots de passe
Password Generator
Produit des mots de passe aléatoires avec longueur, jeu de caractères et exclusion des caractères ambigus au choix, en série si besoin.
Générateur de phrase secrète
Passphrase Generator
Compose une phrase secrète de type diceware à partir d’une liste de mots, en affichant l’entropie en bits.
Ensuite
Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.
Générateur de CSP
CSP Builder
Construit une Content-Security-Policy à partir d’un formulaire guidé ou d’un rapport, et explique chaque directive.
Somme de contrôle de fichier
File Checksum
Hache un fichier de n’importe quelle taille en une passe de lecture en flux et compare le résultat à la valeur attendue que vous collez.
Audit des en-têtes de sécurité
Security Header Scan
Note les en-têtes HSTS, CSP, de cadrage, de référent et de permissions d’un site et indique ce qu’il faudrait ajouter.
Contrôle d’un lien suspect
Suspicious URL Check
Examine la forme d’un lien avant que vous ne l’ouvriez — caractères sosies, hôte en adresse IP, ruse de l’arobase, sous-domaines à rallonge, ports inhabituels, raccourcisseurs — et, à la demande, suit ses redirections et cherche la date de création du domaine. Aucune base de réputation.
Encodeur et décodeur Base64
Base64 Encoder & Decoder
Encode et décode en Base64 et en Base64URL, pour du texte comme pour des fichiers, avec un traitement correct de l’UTF-8.
Vérifier une fuite de mot de passe
Breach Check
Regarde si un mot de passe figure dans les fuites recensées par Have I Been Pwned, en n’envoyant depuis le navigateur que les cinq premiers caractères de son empreinte SHA-1 (k-anonymat).