是否有一个标志可以禁用铬中的子资源完整性检查?

Posted

技术标签:

【中文标题】是否有一个标志可以禁用铬中的子资源完整性检查?【英文标题】:Is there a flag to disable subresource integrity checking in chromium? 【发布时间】:2021-11-26 22:01:41 【问题描述】:

我们使用puppeteer 有时使用playwright 来运行一些集成测试。我们模拟了一些目标页面的脚本依赖,这会导致subresource integrity 哈希不匹配。

Failed to find a valid digest in the 'integrity' attribute for resource 'http://localhost:3000/static/third-party/adobe-target/at-js/2.4.0-cname/at.js' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked."

有没有办法通过标志或配置属性禁用完整性哈希检查?

【问题讨论】:

【参考方案1】:

没有。我认为唯一的方法是从加载脚本的源中修复或删除 integrity 属性。

查看铬(或闪烁)源,unless the integrity attribute is empty,FetchManager::Loader 将实例化SRIVerifier,其构造函数调用其OnStateChange 方法,其中对于basiccors 的响应类型, default(省略 opaque 响应和错误),SubresourceIntegrity::CheckSubresourceIntegrity 被调用。 Unless the parsing of the integrity attribute fails、SubresourceIntegrity::CheckSubresourceIntegrityImpl 要么成功验证摘要之一,要么失败并显示给定的错误消息。没有沿此路径检查配置选项来覆盖失败的检查。

【讨论】:

以上是关于是否有一个标志可以禁用铬中的子资源完整性检查?的主要内容,如果未能解决你的问题,请参考以下文章

PHP 中的子资源完整性和缓存破坏技术

使用 Require JS 的 angularJS 应用程序中的子资源完整性

SIP系统怎么禁用?Mac上 sip系统完整性关闭方法,怎么看sip是否关闭

animate.css 的子资源完整性?

Firebase 上的子资源完整性安全标头

使用 javascript 的图像的子资源完整性