- 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>
43 lines
1.7 KiB
Markdown
43 lines
1.7 KiB
Markdown
# 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.json` `dependencies` 移除 `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 请:
|
||
|
||
1. 使用 **v3.x**(`cos-nodejs-sdk-v5@^3.0.0`),避免 2.x 的旧依赖链漏洞;
|
||
2. 引入后立即执行 `npm audit` 复核漏洞情况;
|
||
3. 若仍报 critical(e.g. `fast-xml-parser` 传递依赖),考虑用「先直传后回调」的
|
||
最小化接入,或改用官方推荐的 **COS STS / 临时密钥** 方案,减少客户端 SDK 依赖。
|