Files
wxmp_backend/docs/cos-sdk-removal.md
broccoliandClaude Fable 5 deaa0c9ce4 feat: 初始化微信小程序后端骨架
- 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>
2026-08-05 17:33:50 +08:00

1.7 KiB
Raw Permalink Blame History

COS SDK 移除记录

日期2026-08-05

背景

初次搭建骨架时,在 package.jsondependencies 中加入了 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 / confmoderate

COS 功能本轮仅为占位src/upload/ 仅提供服务方法签名,代码中并未真正 import 该 SDK),因此移除后不影响现有代码与功能。

变更内容

  • package.json dependencies 移除 cos-nodejs-sdk-v5@^2.14.0
  • 执行 npm uninstall cos-nodejs-sdk-v5 清理 node_modulespackage-lock.json
  • 审计结果:critical/moderate 漏洞清零,仅剩 2 个 high(来自 js-yamlts-node-dev开发期传递依赖,不进入生产镜像)

当前状态

npm audit fix --force 可自动升级到 cos-nodejs-sdk-v5@3.0.0(破坏性大版本), 但本轮不需要 COS,故不升级、保持移除

后续恢复 COS 时的注意事项

实现 COS 直传 / 预签名时,重新引入 SDK 请:

  1. 使用 v3.xcos-nodejs-sdk-v5@^3.0.0),避免 2.x 的旧依赖链漏洞;
  2. 引入后立即执行 npm audit 复核漏洞情况;
  3. 若仍报 criticale.g. fast-xml-parser 传递依赖),考虑用「先直传后回调」的 最小化接入,或改用官方推荐的 COS STS / 临时密钥 方案,减少客户端 SDK 依赖。