为什么我的内容安全策略无处不在,但Safari

时间:2012-12-01 20:13:34

标签: web safari content-security-policy

我已将我的安全政策定义为:

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)。

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:6)

Safari 5在实施CSP方面略显落后。 Safari 6要好得多,但我不认为它是针对Windows发布的。我认为你只是看到了实施错误。如果适用于Windows的WebKit nightlies,那么这可能是测试的一个很好的选择。

老实说,我不建议将X-WebKit-CSP标题提供给Safari 5. Safari 6,是的,但5有点太破碎而无法真正使用。

另请注意,您可以简化政策。 script-srcframe-src都将回退到default-srcdefault-src 'self'; style-src 'self' 'unsafe-inline'应具有相同的效果。