未能在已部署的emberjs应用程序上的资源的“integrity”属性中找到有效摘要

xcitsw88  于 2022-10-20  发布在  其他
关注(0)|答案(2)|浏览(147)

我有一个已部署的emberjs应用程序,在googlechrome浏览器中,我看到以下两个.js文件的错误。
未能在资源“”的“integrity”属性中找到有效摘要http://staging.org.com/assets/vendor-0ada2c9fb4d3e07ad2f0c6a990945270.js“具有计算的SHA-256完整性”Sb4Xc/Oub27QW0MKqK0sbq0Mm476jU7MgJaCzd/gKk=“。”。资源已被阻止
当我检查文件时,我可以看到有问题的两个.js文件的脚本标记。我不能百分之百确定这种完整性检查是如何工作的。您可以使用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>

emberjs应用程序是使用部署到kubernetes的docker映像构建的,运行haproxy的aws-elb正在处理该应用程序的路由,这样当我导航到staging.x.com时,它将路由到该服务(emberjsweb应用程序)的kubernete中的内部dns。
值得注意的是什么;
1.在本地运行ember serve可以工作,并且应用程序加载良好。
1.在本地构建和运行docker映像,应用程序加载良好。
此问题仅在我部署的登台环境中发生。

dfddblmv

dfddblmv1#

我在部署Blazor WebAssembly应用程序时遇到此错误。
未能在资源的“integrity”属性中找到有效摘要
然后它显示了几个NuGets。手动删除解决方案中的所有binobj文件夹,然后重新部署。在这之后,一切都起了作用。
https://github.com/dotnet/aspnetcore/issues/28692#issuecomment-783333400

6pp0gazn

6pp0gazn2#

默认情况下,Ember使用Subresource Integrity (SRI)来提高使用框架构建的应用程序的安全性。
Mozilla开发网络对SRI有很好的解释:
子资源完整性(SRI)是一种安全特性,它使浏览器能够验证其获取的资源(例如,从CDN获取的资源)是否在没有意外操作的情况下交付。它的工作原理是允许您提供获取的资源必须匹配的加密哈希。
在构建Ember应用程序时,会生成其中描述的哈希并注入index.html。如果堆栈的任何部分(部署、web服务器、代理等)修改了文件,index.html中的哈希将不再与所服务文件的哈希匹配。因此,浏览器将阻止该资产的执行,并抛出您在问题中提到的错误。
ember-cli-sri的文档提供了ember构建管道中的集成,它警告了这一点:
在使用SRI的代码中,您不能篡改构建的输出JavaScript文件,因为代码不会加载。

相关问题