express - 使用 nonce 或 sha-256 是否允许执行内联事件处理程序?
问题描述
我对内容安全策略有点怀疑...我的渲染文件 pug 包含内联事件处理程序,例如onclick='someFunction()'
...在我安装了用于添加额外标头的头盔后,它阻止了我的内联事件处理程序以违反 csp ..经过一些研究我来了要知道要允许内联脚本,我们必须使用 unsafe-inline、nonce 或 hash..所以我将 nonce 放在 pug 文件中的脚本标签中,例如script(src="source", nonce='123456')
在头盔中间件中将 content-security-policies script-src 设置为' nonce-123456'..但我仍然无法执行内联事件处理程序..我的问题是使用 nonce 或 sha-256 只允许像这样的 linline 脚本<script nonce='123456'> someFunction() </script>
工作还是允许内联脚本和内联事件处理程序执行??..我知道我可以使用 addEventListener() 来代替内联事件处理程序..但是有什么方法可以使用内联事件处理程序?
解决方案
它只允许执行脚本元素。
属性将onclick
是不同的来源。
‘unsafe-inline'
将允许内联事件处理程序属性,但极易受到 XSS 的攻击,而无法使用 nonce 进行缓解。
使用addEventListener
.
推荐阅读
- sql-server - SSIS & SQL Server - 使用 SSIS 执行 SQL 任务在 SQL Server 中运行存储过程,然后将结果集返回到 SSIS 对象变量
- javascript - 重新渲染一个 React 组件
- python-3.x - Gtk.Application.run() 与 Gtk.main() Python3 中的最后机会异常处理
- javascript - 无法解决:地理编码未成功,原因如下:OVER_QUERY_LIMIT
- haskell - Nix GLFW Haskell 绑定缺少库?
- loops - 在没有用户话语的情况下触发操作
- java - Java:如何在运行时修改 config.properties?
- flutter - 具有大量输入字段的 Flutter Grid - 有没有聪明的方法?
- python - Python peewee / fastapi 在不加载项目的情况下获取用户
- django - Django 导入导出用户外键和 M2M 导入逻辑检查