【问题标题】:Does using nonce or sha-256 allow executing inline event handlers?使用 nonce 或 sha-256 是否允许执行内联事件处理程序?
【发布时间】:2020-08-15 08:55:32
【问题描述】:

我对内容安全策略有点怀疑...我的渲染文件 pug 包含像 onclick='someFunction()' 这样的内联事件处理程序...在我安装了用于添加额外标头的头盔后,它阻止了我的内联事件处理程序以违反 csp。 .经过一些研究后,我知道要允许内联脚本,我们必须使用不安全内联、随机数或哈希..所以我将随机数放在 pug 文件中的脚本标签中,如script(src="source", nonce='123456') 并在头盔中间件中设置内容-security-policies script-src to 'nonce-123456'..但我仍然无法执行内联事件处理程序..我的问题是使用 nonce 或 sha-256 只允许像<script nonce='123456'> someFunction() </script> 这样的 linline 脚本工作,否则它将允许两者要执行的内联脚本和内联事件处理程序??..我知道我可以使用 addEventListener() 来代替内联事件处理程序..但是有什么方法可以使用内联事件处理程序??

【问题讨论】:

    标签: express content-security-policy helmet.js


    【解决方案1】:

    它只允许执行脚本元素。

    onclick 属性将是不同的来源。

    ‘unsafe-inline' 将允许内联事件处理程序属性,但极易受到 XSS 攻击,而无法通过 nonce 进行缓解。

    使用addEventListener

    【讨论】:

      猜你喜欢
      • 2011-03-28
      • 2021-11-06
      • 1970-01-01
      • 2022-01-18
      • 2018-07-12
      • 1970-01-01
      • 2020-02-27
      • 1970-01-01
      • 2023-01-20
      相关资源
      最近更新 更多