Angular应用程序,在Chrome浏览器中,使用缓存的CSP头而不是当前的CSP头

bfhwhh0e  于 2024-01-04  发布在  Go
关注(0)|答案(1)|浏览(234)

带有service worker的Angular应用程序。CSP头已更新为添加新的frame-src。Safari可以很好地识别头更改。Chrome正在阻止iframe内容,console.log中的块详细信息显示了旧的CSP头,没有新的frame-src条目。但是,当我查看network选项卡中的头时,我确实看到了更新的头。
我不知道这是否与service worker有关,但我假设是这样的。当有新的更新可用时,我会有一个刷新提示,因此我可以确认service worker更新过程正在工作。
我试着加上

"cacheQueryOptions": {
        "ignoreVary": false
 },

字符串
我的ngsw-config.json,因为,好吧,它的头相关,至少,但Chrome仍然使用缓存的头。
我还使用Google CSP验证器验证了我的CSP头是否有效。
我不知道接下来该怎么办。

zzzyeukh

zzzyeukh1#

我不知道这是否是一个解决方案,但我发现了一些适用于这种情况的方法。我在index.html文件中添加了CSP的frame-src部分作为Meta标记:

<meta http-equiv="Content-Security-Policy" content="frame-src 'self' foo etc;"/>

字符串
现在Chrome允许iframe内容。
这只是CSP头中已有内容的重复,但显然足以让Chrome停止使用旧的缓存头。

相关问题