Subresource Integrity - SRI Hash


Comme la CSP, le SRI est une fonction de sécurité qui permet aux navigateurs de vérifier que les fichiers qu'ils vont chercher (par exemple, à partir d'un CDN) sont livrés sans manipulation inattendue. Cela fonctionne en permettant de fournir un hachage cryptographique (« hash ») auquel le fichier récupéré doit correspondre.


Pour autoriser Eulerian à fonctionner dans le contexte d'une SRI, il vous faut utiliser une version figée du javascript Eulerian. Nos serveurs vous permettent de fixer la version sur laquelle vous allez travailler.


Modèle exemple d'implémentation SRI

<script>
let EA_vers = '<EA_VERSION>';
let EA_sri = '<EA_SRI_SHA_STRING>';
 
(function(e,a){var i=e.length,y=5381,k='script',s=window,v=document,o=v.createElement(k);for(;i;){i-=1;y=(y*33)^e.charCodeAt(i)}y='_EA_'+(y>>>=0);(function(e,a,s,y){s[a]=s[a]||function(){(s[y]=s[y]||[]).push(arguments);s[y].eah=e;};}(e,a,s,y));i=new Date/1E7|0;o.ea=y;y=i%26;
o.async=1;o.crossOrigin='anonymous';o.integrity=EA_sri;e+='/fv/'+EA_vers;
o.src='//'+e+'/'+String.fromCharCode(97+y,122-y,65+y)+(i%1E3)+'.js?2';s=v.getElementsByTagName(k)[0];s.parentNode.insertBefore(o,s);})
('mon.domainedetracking.com','EA_push');
</script>


Exemple d'implémentation

a ne pas copier/coller ! A adapter en fonction de votre propre SRI
<script>
let EA_vers = '5.5.1';
let EA_sri = 'sha256-hkhVx+B05oiOChsViCasVOlEaE18JlE3aBxTzJEvUXo=';
 
(function(e,a){var i=e.length,y=5381,k='script',s=window,v=document,o=v.createElement(k);for(;i;){i-=1;y=(y*33)^e.charCodeAt(i)}y='_EA_'+(y>>>=0);(function(e,a,s,y){s[a]=s[a]||function(){(s[y]=s[y]||[]).push(arguments);s[y].eah=e;};}(e,a,s,y));i=new Date/1E7|0;o.ea=y;y=i%26;
o.async=1;o.crossOrigin='anonymous';o.integrity=EA_sri;e+='/fv/'+EA_vers;
o.src='//'+e+'/'+String.fromCharCode(97+y,122-y,65+y)+(i%1E3)+'.js?2';s=v.getElementsByTagName(k)[0];s.parentNode.insertBefore(o,s);})
('mj23.eulerian.com','EA_push');
</script>

Il y est précisé deux paramétres “statiques” qu'il vous faudra remplacer:
  • <EA_VERSION> : La version du ea.js principal.Pour trouver la version que vous souhaitez utiliser, rendez-vous à cette adresse (remplacer avec votre domaine de tracking): mon.domainedetracking.com/fv/vers.txt Vous obtenez une liste des versions disponibles. Choisissez-en une (de préférence la plus élevée).Il s'agit de votre variable <EA_VERSION> à remplacer.

  • <EA_SRI_SHA_STRING> : Le résultat du hachage préfixé par son type (sha256, sha384 ou sha512) et un tiret.Choisissez parmi l'un des hachages disponible (sha256, sha385, sha512) que nous appelerons ici <HASH> et rendez-vous ensuite à cette adresse: mon.domainedetracking.com/fv/ <EA_VERSION>/ea.<HASH>.txt?2Exemple pour notre site  www.eulerian.com  avec le domaine de tracking  mj23.eulerian.com  et un sha256: https://mj23.eulerian.com/fv/5.5.1/ea.sha256.txt?2 Vous obtiendrez le hachage courant de cette version du javascript. Une fois préfixée par sha<HASH>-, il s'agit de votre variable <EA_SRI_SHA_STRING> à remplacer.Avec notre exemple: uuQ2A5JrShq7Hbj6PlnRdnpJ/N4mU9RkLHJEy8kp7Lo=La variable <EA_SRI_SHA_STRING> sera donc sha256-uuQ2A5JrShq7Hbj6PlnRdnpJ/N4mU9RkLHJEy8kp7Lo=