Web 为什么我的内容安全策略在Safari之外的任何地方都有效

Web 为什么我的内容安全策略在Safari之外的任何地方都有效,web,safari,content-security-policy,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

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

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.
默认情况下,图像应该包含在src中,另外两个列为“Self”,所以我不知道为什么Safari不接受我的图像和脚本。我没有Mac电脑,所以我在Windows(5.1.7)上使用Safari


有什么想法吗?谢谢大家!

Safari 5在CSP的实现方面有点落后。Safari6要好得多,但我不认为它是为Windows发布的。我认为您只是看到了实现错误。如果WebKit nightlies可用于Windows,那么这可能是一个很好的测试替代方案

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


还请注意,您可以简化您的策略。
scriptsrc
frame src
都将返回到
默认src
<代码>默认src“self”;样式src“self”“unsafe inline”应该具有相同的效果。

谢谢Mike。我看到过有关Safari 6如何实现CSP的参考资料,而Safari 5却没有相同效果的评论,这让我感到奇怪。考虑到Safari的Windows用户太少,我倾向于忽略它,但知道问题出在他们而不是我身上仍然有帮助。同样感谢您的其他观察。“多余”的碎片是残存的;我最初没有提供默认的src和Chrome。然而,Firefox需要这样做。Firefox在完全符合1.0规范之前还有一点工作要做,但他们正在快速进步。我希望他们很快就会支持未经修改的
内容安全策略
标题™, 这会让你的事情变得容易一点。(Chrome应该支持25中未固定的标题)。@MikeWest:有没有办法支持IE11。我尝试了res.setHeader(“X-Content-Security-Policy”,“沙盒'允许相同来源'”);以及IE11的许多其他功能。但没有任何效果。需要为IE11做些什么?