[eggjs/egg]egg 安全CSP开启问题

2024-08-05 963 views
6

开启CSP后,响应头content-security-polic: 'nonce-z_OnFpywHZxYWC5A';会自动添加nonce,如何关闭,找不到相关文档

最小可复现仓库

请使用 npm init egg --type=simple bug 创建,并上传到你的 GitHub 仓库

复现步骤,错误日志以及相关配置 相关环境信息
  • 操作系统
  • Node 版本
  • Egg 版本

回答

0

关闭不了。这个有啥影响嘛?

3

关闭不了。这个有啥影响嘛? 我在egg.js项目中的新增了安全设置 config.security = { csp: { enable: true, policy: { 'script-src': '\'self\' \'unsafe-inline\' \'unsafe-eval\'', 'object-src': '\'self\'', }, }, }; 而目前项目中有大量的内联脚本没有添加属性nonce,改动范围太大,这样不会导致内联脚本执行不了吗,今天刚接触这一块的知识,可能理解有误

4

@CaiDeng 现在有这几个方法可以尝试一下

  1. 文档说 CSP 默认是关闭的,如果不是可以手动继续关闭 image 手动关闭:
    exports.security = {
    csp: {
    enable: false,
    },
    };
  2. 文档说,可以针对某一路径进行开启和忽略

image

  1. 如果上面两种方法都不行,可以在后端手动覆盖 content-security-polic 响应头 Content-Security-Policy: default-src ‘self‘

如果上面的3 个方法都不行, 那就手动 @ @atian25 这位大佬

4

非常感谢你的解答,前两个不行,第三个可以,现在项目中接口很多,有什么方法可以统一修改覆盖呢

3

@CaiDeng 可以增加一个中间件。再处理所有接口的业务逻辑之前,CSP 中间件后 增加一个设置响应头的中间件

9

非常感谢你的解答,前两个不行,第三个可以,现在项目中接口很多,有什么方法可以统一修改覆盖呢

源码都在 egg-security,可以调试下为什么不行,也可能是你配错了。