小编Soh*_*dev的帖子

当 HTTP 标头和元标记中同时存在 Content-Security-Policy 时出现问题

我们正在开发一个 Web 项目,其中内容安全策略是通过 HTTP 标头和元标记强制执行的。有一组默认属性,它们是 HTTP 标头的一部分,每个页面通过文档标头中的元标记指定附加策略。

项目中的页面之一加载 iframe 内的内容。该页面的 HTTP 标头中的 Content-Security-Policy 是

Content-Security-Policy: frame-src *;

该页面的文档标题中有以下元标记

<meta http-equiv="Content-Security-Policy" content="default-src none;"/>

MDN Web 文档中提到后备顺序是frame-src-> child-src-> default-src。尽管frame-src在 HTTP 标头中进行了设置,但我在浏览器控制台中收到以下错误消息(在 Google Chrome 和 Microsoft Edge 上尝试过):

Refused to frame '<url here>' because it violates the following Content Security Policy directive: "default-src none". Note that 'frame-src' was not explicitly set, so 'default-src' is used as a fallback.
Run Code Online (Sandbox Code Playgroud)

还,

将这两个策略移动到 HTTP 标头或元标记可以按预期工作

browser http cross-domain http-headers content-security-policy

2
推荐指数
1
解决办法
3142
查看次数