Chrome CSP标头失败,显示“拒绝应用内联样式...”,但我已经添加了散列

7qhs6swi  于 2023-08-01  发布在  Go
关注(0)|答案(2)|浏览(132)

获取
拒绝应用内联样式,因为它违反了以下内容安全策略指令:"style-src 'self''sha256-UTjtaAWWTyzFjRKbltk24jHijlTbP20C1GUYaWPqg7E =''sha256-lAjyGSI zNSfpcl56itQltlKnBClAWcbXqXwsWgwPBDM =''sha256-IQ1w928Id2I18HopWjf2QH1yWRabH2 jMmdIigddkJsjk =''sha256-gx2qS9lINA9HjEhSBFaGgUjlVL1GCqJxyGoHpGODeo8 =''sha256-nFZFLbV913URty3kcgmuV3NUKJUM9TYhEZ + OkHy6DxU =''sha256-xfnLUXCYTisGE010rOa R +0g05EG + uV25p4QNcjB5dWg =''sha256-TUXjxBhzs16 + YXaJCnt/+ EyyEldkUoAz/SvQCm05hFw ='blob:"。启用内联执行需要“unsafe-inline”关键字、散列('sha256-gx2qS9lINA9HjEhSBFaGgUjlVL1GCqJxyGoHpGODeo8 =')或nonce('nonce-...')。
但是请注意,它希望我添加的哈希已经存在。
使用最新的Chrome
我的CSP头有什么问题?

carvr3hs

carvr3hs1#

您可以将CSP Level 3 'unsafe-hashes' directivebrowser support)与哈希值结合使用。散列似乎不适用于没有它的内联样式。

警告

每当您在CSP关键字中看到前缀unsafe时,这意味着使用它不是最安全的方法。
'unsafe-hashes'不仅允许在元素上应用内联样式,还允许在攻击者注入的任何元素上应用内联样式。更好的方法是在CSS文件中移动样式。

rqcrx0a6

rqcrx0a62#

你被狡猾的方法抓住了。有两种内联样式:
1.< style>...< /style>-支持 'hash-value' 令牌
1.* < tag style='...'>-不支持 'hash-value' 标记
但是Chrome对这两个都计算了sha 256值,因为它准备支持 'unsafe-hashes' 令牌(但尚未实现,它是implemented,对不起)。Chrome的控制台消息在上述两种风格之间没有区别,都被认为是内联的。
所以你在HTML代码的某个地方有一个标签的内联样式(第2段)。Chrome计算了sha 256哈希值,并在控制台中发出警告。您将此散列添加到CSP,但仍然有一个警告,因为标记中的样式已被阻止-无法通过 'hash-value' 允许。

相关问题