Files
full/.workbuddy/memory/2026-09-22.md
2026-09-22 18:53:53 +08:00

30 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-09-22 工作日志
## 全仓逐微服务代码审计(第二轮,业务实现层)
**任务**:重新分析并审计 BSM Infra Full 全部代码,按微服务名称输出 md 审计文档到 `docs/`;产品类文档放 `wiki/`;明确要求**不得提出过度设计/过度封装建议**。
**产出**
- `docs/` 新增 22 篇18 个业务服务 + `pkgs-all.md`/`pkgs-ecmall.md`/`workspace-and-scripts.md` + `README.md` 索引。
- `wiki/` 新增产品级文档 2 篇:`audit-2026-09-22-总体审计报告.md`P0/P1 风险台账 + 共性根因 + 修复优先级)、`产品与服务目录.md`(服务域/清单/完成度/跨域耦合/拓扑)。
- 更新 `wiki/README.md`、根 `README.md` 的文档索引。
- 未修改任何源码/脚本。
**审计约定(本次确立,后续沿用)**
- 每篇结构:头部信息表 → 定位职责 → 代码结构与入口 → 接口清单 → 数据模型 → 核心流程(mermaid) → 审计发现(安全/正确性/未完成/健壮性) → 风险汇总表 → 修复建议(务实项)。
- 结论必须带 `文件:行号` 证据;无法确认标【信息不足】。
- 修复建议只给最小直接动作,禁止统一框架/抽象层/DTO/VO/DDD/CQRS/拆微服务边界一类建议。
**关键结论P0 摘要,供后续跟踪)**
- 认证passport 与 mall 的验证码登录/注册**不校验验证码**passport `Forget.Reset` 凭 identity 即可改密且写未加盐 MD5mgt `AppKey` 登录明文比对密码列mgt dev 注入 `root/123456`
- 资金wallet 支付回调**不验签**、提现只校验不扣减无幂等、余额扣减读后写order 模拟支付/发货生产可达、`OrderApprove` 无鉴权、优惠券金额**做加法**致应付变高、扣库存不检查 RowsAffected。
- 越权address/cms/group/relation/feed/mall/market/feedback 共 9 个模块存在"只校验登录、不校验归属/角色"。
- 上线阻断pkgs 无 prod 配置、JWT/session 密钥默认值恰 32 字节可用、gateway 404 与业务 NotFound 无法区分;`scripts/api-docgen` 无法构建。
- 静默故障:多处引用不存在的列(`relation_id`/`creator_id`/`createor_id`/`enabled`)与命名返回值 `reply` 未赋值。
- 测试:全仓仅 21 个 `*_test.go`base 多数模块、wallet、social 三服务零单测。
**方法备注**
- 本机 bash shim 缺 `dirname`PATH 报错但不影响),需 `export PATH="/usr/bin:/bin:$PATH"` 后执行 `find`/`grep`/`ls`PowerShell 输出未被捕获,改用 Bash/Glob/Grep。
- 大批量逐服务审计采用并行子代理general-purpose分域产出子代理默认模型触发 429 时切换 `model: "lite"` 可用;范例先由主代理写 `docs/logs.md` 固化为模板。
- 子代理无法 SendMessage非 team 会话),改为在回复中汇报。