获取
拒绝应用内联样式,因为它违反了以下内容安全策略指令:"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头有什么问题?
2条答案
按热度按时间carvr3hs1#
您可以将CSP Level 3
'unsafe-hashes'
directive(browser support)与哈希值结合使用。散列似乎不适用于没有它的内联样式。警告
每当您在CSP关键字中看到前缀unsafe时,这意味着使用它不是最安全的方法。
'unsafe-hashes'
不仅允许在元素上应用内联样式,还允许在攻击者注入的任何元素上应用内联样式。更好的方法是在CSS文件中移动样式。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' 允许。