React+Node.js项目安全漏洞无法解决,请求技术支持
解决React+Node.js项目中的安全漏洞问题
我正在测试React与Node.js开发,作为新手遇到了无法通过常规方法修复的安全漏洞,试过npm audit fix、npm audit fix --force都没用,卸载request包后漏洞依然存在。
一、项目根目录(服务端)漏洞
- 关联包链:
fuel-rest→fuel-auth→request - 漏洞信息:
request全版本存在中等严重程度的服务端请求伪造漏洞,无官方修复版本- 共涉及3个关联中等漏洞
二、客户端漏洞
- 关联包链:
react-scripts>=2.1.4 →@svgr/webpack4.0.0-5.5.0 →@svgr/plugin-svgo<=5.5.0 →svgo1.0.0-1.3.2 →css-select<=3.1.0 →nth-check - 漏洞信息:
nth-check存在高严重程度的正则表达式低效复杂度漏洞,官方提示可通过npm audit fix --force修复,但会将react-scripts降级到2.1.3(属于破坏性变更)- 共涉及6个关联高漏洞
可行解决方案
针对服务端request相关漏洞
- 替换废弃依赖(推荐):
request已停止维护,直接替换为axios、node-fetch等活跃维护的HTTP请求库:- 卸载依赖链中的废弃包:
npm uninstall fuel-rest fuel-auth - 若原包用于Salesforce Marketing Cloud,改用官方最新的SDK或直接用新HTTP库调用API
- 重构代码中对应模块的请求逻辑,适配新库的调用方式
- 卸载依赖链中的废弃包:
- 测试环境临时规避:若仅为测试项目不想重构,可在
package.json中添加resolutions字段强制升级request到最后一个稳定版(npm v6+支持):
执行"resolutions": { "request": "^2.88.2" }npm install生效,注意:生产环境不建议使用此方法
针对客户端nth-check相关漏洞
- 接受破坏性变更(快速修复):若项目兼容
react-scripts@2.1.3,直接执行npm audit fix --force完成修复 - 升级
react-scripts到最新版(推荐):最新稳定版的react-scripts已依赖修复后的@svgr系列包:- 执行
npm install react-scripts@latest - 检查项目兼容性,根据官方文档调整webpack、babel相关配置
- 执行
- 强制覆盖子依赖版本:在
package.json中添加overrides字段(npm v8.3+支持),强制所有依赖链使用安全版本的nth-check:
执行"overrides": { "nth-check": "^2.0.1" }npm install后生效
内容的提问来源于stack exchange,提问作者noideahowtocode
相关产品推荐
相关产品推荐

