我已将我的安全政策定义为:
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上使用Safari(5.1.7)。
有什么想法吗?谢谢!
答案 0 :(得分:6)
Safari 5在实施CSP方面略显落后。 Safari 6要好得多,但我不认为它是针对Windows发布的。我认为你只是看到了实施错误。如果适用于Windows的WebKit nightlies,那么这可能是测试的一个很好的选择。
老实说,我不建议将X-WebKit-CSP
标题提供给Safari 5. Safari 6,是的,但5有点太破碎而无法真正使用。
另请注意,您可以简化政策。 script-src
和frame-src
都将回退到default-src
。 default-src 'self'; style-src 'self' 'unsafe-inline'
应具有相同的效果。