- NestJS + TypeScript + Prisma + PostgreSQL 工程骨架 - 微信登录安全流程:服务端 code2Session 换 openid 后签发 JWT, session_key 缓存于 Redis,不信任前端 openid - 统一响应/异常处理、JWT 全局鉴权(@Public 豁免)、Swagger 文档 - Prisma 全量核心 schema(用户/分类/商品/设计清单/地址/订单/支付/上传/定制任务)+ seed - 业务模块空壳(商品/分类/设计清单/地址/订单/支付/上传/BullMQ 队列) - Docker 多阶段镜像 + 本地/生产 docker-compose - docs:密钥获取指南、COS SDK 移除记录 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1.7 KiB
1.7 KiB
COS SDK 移除记录
日期:2026-08-05
背景
初次搭建骨架时,在 package.json 的 dependencies 中加入了 cos-nodejs-sdk-v5(^2.14.0),
计划用于后续的腾讯云对象存储(COS)直传功能。
移除原因
npm audit 检出 12 个安全漏洞(3 critical / 2 high / 7 moderate),全部来自
cos-nodejs-sdk-v5 及其传递依赖:
fast-xml-parser(critical)— 多个实体展开绕过 / DoS 漏洞form-data(critical)— 不安全随机边界、CRLF 注入request(已废弃)— 含已知漏洞的旧库ajv/conf(moderate)
COS 功能本轮仅为占位(src/upload/ 仅提供服务方法签名,代码中并未真正 import
该 SDK),因此移除后不影响现有代码与功能。
变更内容
- 从
package.jsondependencies移除cos-nodejs-sdk-v5@^2.14.0 - 执行
npm uninstall cos-nodejs-sdk-v5清理node_modules与package-lock.json - 审计结果:critical/moderate 漏洞清零,仅剩 2 个 high(来自
js-yaml, 属ts-node-dev的开发期传递依赖,不进入生产镜像)
当前状态
npm audit fix --force 可自动升级到 cos-nodejs-sdk-v5@3.0.0(破坏性大版本),
但本轮不需要 COS,故不升级、保持移除。
后续恢复 COS 时的注意事项
实现 COS 直传 / 预签名时,重新引入 SDK 请:
- 使用 v3.x(
cos-nodejs-sdk-v5@^3.0.0),避免 2.x 的旧依赖链漏洞; - 引入后立即执行
npm audit复核漏洞情况; - 若仍报 critical(e.g.
fast-xml-parser传递依赖),考虑用「先直传后回调」的 最小化接入,或改用官方推荐的 COS STS / 临时密钥 方案,减少客户端 SDK 依赖。