Google chrome 为什么我的内容安全策略没有得到遵守?

Google chrome 为什么我的内容安全策略没有得到遵守?,google-chrome,content-security-policy,hotjar,Google Chrome,Content Security Policy,Hotjar,我遇到了一个非常奇怪的情况,一个哈希被忽略,尽管它存在于内容安全策略中 这是在我们的网站上安装时发生的,手动为它使用的每个内联脚本添加哈希,但显然,任何动态插入的内联脚本都可能发生这种情况 在下面的控制台错误消息中,您可以看到所需的哈希存在,但Chrome建议需要添加它 拒绝应用内联样式,因为它违反了以下内容安全策略指令:"样式src'nonce-llx8zkd3suoinpe9mcaplnhrymlkw''self''sha256-hreckp1frukfullrmqh3cavyb/pNYtd

我遇到了一个非常奇怪的情况,一个哈希被忽略,尽管它存在于内容安全策略中

这是在我们的网站上安装时发生的,手动为它使用的每个内联脚本添加哈希,但显然,任何动态插入的内联脚本都可能发生这种情况

在下面的控制台错误消息中,您可以看到所需的哈希存在,但Chrome建议需要添加它

拒绝应用内联样式,因为它违反了以下内容安全策略指令:"样式src'nonce-llx8zkd3suoinpe9mcaplnhrymlkw''self''sha256-hreckp1frukfullrmqh3cavyb/pNYtdWFGJ2EL5FzdE=''sha256-svlgadqeepev9rnxbrqxsbjaffhcvng7cpzhzz6h9ea=''sha256-fGP7dUodgG1o2qqo7hPGqd+2ee7z2z4xg5muj+XIOQ=''sha256-8odthjonkr/udl5f9uqh3kpqql9h9hzzqc1p8h7czzz78=''kamxxzzg8g8g8hzzzg8h8jjjjg8zzzc8h8h7czczc8c8czz“sha256-Qv05/NsT/MWFR5NB3hDHRW9iI424uc8WpuRssGdOAsU=”sha256-47DEQPJ8BSA+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=””sha256-S3EaMUkdpUGJFgSHH5d/29s3oD8/sutxvMfQoprfQ+g=“sha256-qVlOiWrAwuIfu8+UHKKG4QBA7YOUOSM8A04LFRNW=”*.hotjar.com*.typekit.net”

但补救办法是包含一个已经存在的哈希值:

启用内联执行需要'unsafe inline'关键字、哈希('S3EaMUkdpUGJFgSHH5d/29s3oD8/sutxvMfQoprfQ+g=')或nonce('nonce-…')

CSP中的哈希值与建议的解决方案相同:

以下是完整的CSP:

Content-Security-Policy: default-src *; base-uri 'self'; img-src * data:; style-src 'nonce-{$nonce}' 'self' 'sha256-HRecKxp1fRukFUlrmQh3cAVyb/pNYtdWFGJ2EL5FzdE=' 'sha256-SvLgADqEePEV9RNxBrRQXSBJafFHcVNG7cPzHz6h9eA=' 'sha256-fGP7dUodgG1o2qqo7hPGqd+2FEE7z2Z4Xg5muj+XIOQ=' 'sha256-8hoDThJonkR/uDTFl5y8ugf9U3kcHPL2sq19iPFHTds=' 'sha256-ecMh1s2mivgxX0zzJbkamgAS7kPx+1EqcHz8Uz30i78=' 'sha256-Qv05/NsT/MWFR5NB3hDHRW9iI424uc8WpuRssGdOAsU=' 'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' 'sha256-S3EaMUkdpUGJFgSHH5d/29s3oD8/sutxvMfQoprfQ+g=' 'sha256-qVlOiWrAwuIfu8+uHKHkgg4qBA7YOoSm8A0yB4LfrNw='  *.hotjar.com *.typekit.net; script-src 'nonce-{$nonce}' 'self' 'sha256-A0/707MQdpfr/tR18VnYSk7JMJoUQSBURZEJa8wF6po=' 'sha256-1kpOd8fXCkigqXNekDPt+noalDB6YI+94YhtU3ETmvE=' *.hotjar.com *.googletagmanager.com *.universe.com *.google-analytics.com *.quantserve.com *.quantcount.com *.ads-twitter.com *.facebook.net analytics.twitter.com *.stripe.com polyfill.io *.queue-it.net *.amplitude.com; object-src 'none'; frame-ancestors 'self' *.queue-it.net
要复制这一点,您只需使用上述CSP安装Hotjar

这是一个Chrome bug还是我错过了什么

这里有一个供感兴趣的人使用的屏幕截图(点击放大)

本期与本期相同

您有以下两种情况之一:

  • 标签中的内联事件处理程序,如
    onclick='javascript\u here'
    onload='js\u handler()'等
  • javascript导航,如“script src”的
    标记


    注意:Safari 12“不安全散列”,因此,在1的情况下,挂起事件处理程序可能更好。

    文本引号中的普通破折号和em破折号的组合不同,在控制台的单空格字体中看起来相同。最好的猜测是,由于某个地方的破折号类型错误,哈希或CSP指令无效。@guy由于我的抄写错误。原件中不存在。现已修复。