nedb与underscore依赖高危安全漏洞及升级问题咨询
nedb依赖安全漏洞处理指南
注:你当前的应用仅本地运行、仅通过localhost访问,两个高危漏洞都需要攻击者传入恶意构造的输入才能触发,如果你不会把服务对公网暴露、也不会处理来源不可信的第三方输入,实际风险极低,无需过度焦虑。
nedb通用使用建议
- nedb已经停止维护多年,本次扫描出的原型污染漏洞没有官方修复方案。如果是需要长期迭代的正式项目,建议优先替换为仍在活跃维护的轻量本地数据库,比如better-sqlite3、lowdb,这类库的API学习和迁移成本都不高,也会持续修复安全问题。
- 如果是临时开发的小工具、内部自用脚本类项目,确认没有对外暴露入口,可以暂时保留使用,不需要强行下线。
升级underscore的兼容性说明
升级underscore到1.12.1版本不会影响nedb正常运行。
nedb和它依赖的binary-search-tree用到的都是underscore最基础的对象、集合处理API,1.12.1版本仅修复了安全漏洞,没有对这些基础API做不兼容变更,大量老项目实测升级后运行无异常。
嵌套依赖升级操作方法
根据你用的包管理工具选对应方案即可:
- 如果你使用npm(8.3.0及以上版本):
打开项目根目录的package.json文件,新增overrides字段强制指定全项目依赖的underscore版本:
保存后删除项目下的{ "overrides": { "underscore": "1.12.1" } }node_modules文件夹和package-lock.json文件,重新执行npm install完成安装。 - 如果你使用yarn:
打开项目根目录的package.json文件,新增resolutions字段:
保存后删除{ "resolutions": { "underscore": "1.12.1" } }node_modules和yarn.lock,重新执行yarn install即可。
安装完成后可以执行npm ls underscore(npm用户)或yarn list underscore(yarn用户)校验版本,确认所有层级的underscore都升级到1.12.1就完成了。
补充说明:nedb依赖的binary-search-tree同样已经停更,强制升级它依赖的underscore版本也不会出现兼容问题,不需要额外做其他配置。
内容的提问来源于stack exchange,提问作者Klaus53123
相关产品推荐
相关产品推荐

