Safari

时间:2015-09-25 18:19:34

标签: safari content-security-policy

所以我为我的网络应用程序实现了CSP,它在Chrome中运行得非常好。执行带有nonce的所有内联脚本;那些没有它的人没有被执行。

然而,在Safari中,这是我在控制台中看到的消息:

  

内容安全策略指令'script-src'的源列表   包含无效的来源:   '现时-fbe23fb21d40c38e8df7c0a16357dd3ec4be86ca233cb41206ac5f897cf9a103'。   它将被忽略。

标题:

Content-Security-Policy script-src 'nonce-cb28e5c8a2b833169bb8d1fa686f659fed9b3bf8ea52b86916bcaf20a04b3209' 'self'

没有内联脚本被执行,即使是那些带有现时脚本的脚本。

1 个答案:

答案 0 :(得分:9)

Safari尚不支持nonce(请告知本地webkit代表支持此功能)但Firefox和Chrome已实现了向后兼容的标准行为。即,如果存在随机数,则忽略'unsafe-inline'

发送'unsafe-inline'和您的随机数,您将获得所需的行为。 Safari会抱怨"未知来源值"但它会按预期工作。

请参阅http://www.w3.org/TR/CSP2/#directive-script-src