Safari忽略了CSP现象

May*_*ora 8 safari content-security-policy

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

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

内容安全策略指令'script-src'的源列表包含无效源:''nonce-fbe23fb21d40c38e8df7c0a16357dd3ec4be86ca233cb41206ac5f897cf9a103''.它会被忽略.

标题:

Content-Security-Policy script-src 'nonce-cb28e5c8a2b833169bb8d1fa686f659fed9b3bf8ea52b86916bcaf20a04b3209' 'self'
Run Code Online (Sandbox Code Playgroud)

没有内联脚本被执行,即使是nonce.

ore*_*ake 10

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

发送两者'unsafe-inline'和你的随机数,你将得到所需的行为.Safari会抱怨"未知的来源价值",但它会按预期工作.

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

  • @ nucc1如果在不使用随机数的情况下使用它,则会执行此操作,但是如果您的script-src中存在随机数或哈希值,则标准会忽略“ unsafe-inline”,因此在这种情况下就可以了。 (2认同)