Google analytics 我如何结合谷歌';s具有子资源完整性的全局站点标记?

Google analytics 我如何结合谷歌';s具有子资源完整性的全局站点标记?,google-analytics,gtag.js,Google Analytics,Gtag.js,我正在我的网站上实施全球跟踪。但我也想保持我的子资源完整性(SRI)最新。因此,我运行以下命令来查找gtag.js的完整性哈希 > curl -s https://www.googletagmanager.com/gtag/js |\ openssl dgst -sha384 -binary |\ openssl base64 -A 将此作为完整性属性添加到带有crossorigin=“anonymous”属性的script标记中,会导致浏览器无法加载gtag脚本。原因: 子资源

我正在我的网站上实施全球跟踪。但我也想保持我的
子资源完整性
(SRI)最新。因此,我运行以下命令来查找
gtag.js
的完整性哈希

> curl -s https://www.googletagmanager.com/gtag/js |\
  openssl dgst -sha384 -binary |\
  openssl base64 -A
将此作为完整性属性添加到带有
crossorigin=“anonymous”
属性的
script
标记中,会导致浏览器无法加载gtag脚本。原因:

子资源完整性:资源“”具有完整性属性,但该资源要求启用CORS以检查完整性,而不是。资源已被阻止,因为无法强制执行完整性

明显的原因是
accesscontrolalloworigin
标题,google返回该标题,并且只允许相同的主机来源


是否有人知道此脚本是否有其他主机?有没有其他方法可以在您的站点中采用gtag?

唯一的解决方法可能是简单地获取资源,将其存储在同一台服务器上,然后设置您自己的
访问控制允许源站
标题

这有点愚蠢——因为它不仅降低了通过CDN分发资源的价值,而且有效地使SRI变得毫无意义(因为您使用的是静态本地副本,而不是远程副本,因此可以通过SRI验证来降低操作风险)

这也只在资源保持静态时才起作用。但是,由于SRI依赖于资源是静态的(因此哈希将匹配),因此对服务器上的资源的任何更改都将导致SRI强制,导致资源无论如何都会失败

因此,它可能并不比首先使用SRI更脆弱(除非您正在动态生成资源的校验和……在这一点上,首先使用SRI就没有那么重要了)


更新2020-09-22:这似乎是2020年4月谷歌方面的问题。

你在其他地方找到了这个问题的答案/解决方案吗?没有。我也试着通过论坛和反馈询问谷歌,但没有回应。