内容安全策略在桌面上按预期工作,但不在移动设备上

问题描述 投票:1回答:1

在一个网站上拥有内容安全策略是在一个网站上提供额外安全层的好方法。

我有一个内容安全策略在桌面上按预期工作,但它打破了移动网站(safari)。内容安全策略位于元标记内。我正在使用随机数和哈希值。在移动设备上,我收到错误,指出它拒绝执行内联脚本,因为它违反了包含哈希值和随机数的内容安全策略指令。该错误还表明我需要在代码中使用哈希或随机数来执行代码,但它们已经存在于那里,这就是它在桌面上运行良好的方式。问题是在移动设备上它的行为就好像哈希和随机数不存在一样。任何提示都表示赞赏。

mobile-safari content-security-policy
1个回答
2
投票

在CSP中,如果你为script-srcstyle-src包含一个nonce,如果浏览器理解nonce,unsafe-inline将被忽略。因此,为了与不了解CSP2的旧版浏览器(例如,iOS 9及更早版本的Safari)兼容,请同时包含你的nonce和unsafe-inline

较新的浏览器将遵循现时并忽略unsafe-inline。较旧的浏览器不会理解这些随机数,因此会回退到unsafe-inline

https://csp.withgoogle.com/docs/strict-csp.html

script-src nonce- {random}'unsafe-inline'

nonce指令意味着只有当元素包含与策略中出现的随机生成的值匹配的nonce属性时才允许执行元素。

注意:在存在CSP随机数的情况下,现代浏览器将忽略unsafe-inline指令。较旧的浏览器(不支持nonce)将看到unsafe-inline并允许内联脚本执行。

© www.soinside.com 2019 - 2024. All rights reserved.