Safari 忽略 CSP 随机数

CSP nonce ignored by Safari

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

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

The source list for Content Security Policy directive 'script-src' contains an invalid source: ''nonce-fbe23fb21d40c38e8df7c0a16357dd3ec4be86ca233cb41206ac5f897cf9a103''. It will be ignored.

Header:

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

None 的内联脚本被执行,即使是带有 nonce 的脚本。

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

同时发送 'unsafe-inline' 和您的随机数,您将获得所需的行为。 Safari 会抱怨 "unknown source value" 但它会按预期工作。

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