我将安全策略定义为:
default-src 'self'; script-src 'self'; frame-src 'self'; style-src 'self' 'unsafe-inline';
(我仍然在几页的顶部放置CSS)。
我在Firefox或Chrome上没有问题(IE尚不支持CSP),但是,当我尝试在Safari中进行测试时,出现了一系列错误,例如:
Refused to load style from 'http://localhost/styles/alliance.css' because of Content-Security-Policy.
.
.
.
Refused to load image from 'http://localhost/images/Landing1.jpg' because of Content-Security-Policy.
.
.
.
Refused to load script from 'http://localhost/JQuery/jquery-1.7.2.min.js' because of Content-Security-Policy.
图像应该被default-src覆盖,另外两个被列为“Self”,因此我不知道为什么Safari不接受我的图像和脚本。我没有Mac,因此我在Windows(5.1.7)上使用Safari。
有任何想法吗?谢谢!
最佳答案
Safari 5在实现CSP方面有些落后。 Safari 6更好,但我认为它不是针对Windows发行的。我认为您只是看到实现错误。如果Windows可以使用WebKit夜间服务,那么这可能是测试的不错选择。
不过,老实说,我不建议向Safari 5提供X-WebKit-CSP
header 。Safari 6是的,但是5有点破损,无法真正使用。
另请注意,您可以简化策略。 script-src
和frame-src
都将回落到default-src
。 default-src 'self'; style-src 'self' 'unsafe-inline'
应该具有相同的效果。
关于web - 为什么我的内容安全策略在Safari以外的所有地方都有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13663302/