内容安全策略失效。

3

我正在向响应头中添加以下内容:

x-content-security-policy default-src 'none';

我期望页面上不会加载任何css或图像,但实际上所有东西都被加载了。我做错了什么?


1
哪个浏览器?不同版本的浏览器理解不同的标题名称。标题名称和其值之间缺少“:”。 - oreoshake
让我们来看看您浏览器中的调试内容!至少头部信息会很有用。 - Jason Nichols
4个回答

4

对于Chrome和更新版本的Firefox(v.23及以上):

Content-Security-Policy: default-src 'none'

对于Safari:

X-Webkit-CSP: default-src 'none'

对于较旧的Firefox版本(v. 23及更早版本):

X-Content-Security-Policy: default-src 'none'

抱歉 - 在IE浏览器中,只有sandbox策略被识别,而且仅在IE 10及更高版本中可用。


1
我尝试在IE11中使用res.setHeader("X-Content-Security-Policy", "sandbox 'allow-same-origin'");,但它允许所有其他域外部脚本。 我错过了什么吗? - Akash Patra

1
我正在使用火狐浏览器,它对我很有效。 这是我在响应中添加的标题:
Content-Security-Policy: default-src 'none'

尝试移除“x-”,并尝试使用其他浏览器。

0
你可以尝试在使用 Content-Security-Policy: 之前包含 Header set。就像这样:
Header set Content-Security-Policy:

0

CSP头现在至少有三种不同的风格,而且浏览器版本之间的支持也非常不同。我建议一开始只使用最标准的那个(Content-Security-Policy),并将其设置为报告模式(Content-Security-Policy-Report-Only)。详情请参见https://en.wikipedia.org/wiki/Content_Security_Policy#Status。您还可以尝试使用“迭代”方法来构建您的内容安全策略,使用http://cspbuilder.info/


是的,它已经停止维护了,但作为开源项目可在 https://github.com/kravietz/cspbuilder 上获取。 - kravietz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接