web-dev-qa-db-fra.com

Impossible de trouver un digest valide dans l'attribut "Intégrité" pour la ressource sur une application Emberjs déployée

J'ai une application Emberjs déployée et dans Google chrome navigateur im obtenant les erreurs suivantes pour 2 des fichiers .js.

Impossible de trouver un digest valide dans l'attribut "Intégrité" pour la ressource "http://sting.org.com/assets/vendor-0ada2c9fb4d3e07ad2f0c6a990945270.js 'avec intégrité calculée SHA-256" SB4XC/OUB27QW0MKLQK0SBQ0MM476JU7MGJACEZD/GKK ='. La ressource a été bloquée

Lorsque j'inspecte le fichier, je peux voir les étiquettes de script pour les deux fichiers .js en question. Je ne suis pas sûr à 100% de la vérification de cette intégrité. Vous pouvez voir l'attribut d'intégrité ci-dessous avec le SHA.

<script src="/assets/vendor-0ada2c9fb4d3e07ad2f0c6a990945270.js" integrity="sha256-s3XY9h9v9IThygF6UkWRvWZsf7zeTqYJ1rLfDgg1bS0= sha512-k3lfqdeZw3OcsECfD3t99Hidh6IoRlFSoIu5nJk0FkLYHwx0q/rddirj4jh4J73dmLwKfG9mx0U5Zf6ZzRBsvA==" ></script>
<script src="/assets/g-web-56670cf0485cf52f54589091e2a25cc8.js" integrity="sha256-jNmWqO61OPijscQ5cHVSbB1Ms5wKX78ZACYdhrUo3X4= sha512-oiksgRFsqgHaCvXPvd3SAsUuX4zPeVClQBIgrOgIKNBMa3hPqCHknoFqDGRtSyfN4EdIkfk/x1zSqBqRvONAGQ==" ></script>

L'application EMBERJS est construite à l'aide d'une image Docker, déployée sur Kubettes et un AWS ELB exécutant Haproxy gère le routage de cette application telle que lorsque je navigue à staging.x.com It Ieralise vers le DNS interne dans Kubettes de ce service (application Web Emberjs).

Ce qui est intéressant à noter;

  1. En cours ember serve fonctionne localement et les applications se chargent bien.
  2. Construire et exécuter l'image Docker Travaux localement et les applications se chargent bien.

Le problème ne se produit que sur mon environnement de mise en scène déployé.

3
Kay

Ember utilise Intégrité de la sous-formation (SRI) Par défaut pour augmenter la sécurité des applications Construire avec le cadre.

Le réseau de développement de Mozilla a une bonne explication de SRI:

L'intégrité de la sous-formation (SRI) est une fonctionnalité de sécurité permettant aux navigateurs de vérifier que les ressources qu'ils récupèrent (par exemple, à partir d'un CDN) sont livrées sans manipulation inattendue. Cela fonctionne en vous permettant de fournir un hachage cryptographique qu'une ressource récupérée doit correspondre.

Le hachage décrit leur est généré et injecté dans le index.html à la durée de construction de Ember Application. Si une partie de votre pile (déploiement, serveur Web, proxy, etc.) modifie le fichier, le hachage in index.html ne correspondra plus au hasch du fichier servi plus. Le navigateur bloquera donc l'exécution de cet actif et lancera l'erreur que vous avez mentionnée dans votre question à la place.

La Documentation de Ember-CLI-SRI , qui fournit l'intégration dans Ember Constray Pipeline avertit à propos de celui-ci:

Dans le code qui utilise SRI, vous ne devez pas altérer les fichiers JavaScript de sortie construits, car le code ne sera pas chargé.

1
jelhan