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

2.8 KiB
Raw Blame History

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-总体审计报告.mdP0/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.gobase 多数模块、wallet、social 三服务零单测。

方法备注

  • 本机 bash shim 缺 dirnamePATH 报错但不影响),需 export PATH="/usr/bin:/bin:$PATH" 后执行 find/grep/lsPowerShell 输出未被捕获,改用 Bash/Glob/Grep。
  • 大批量逐服务审计采用并行子代理general-purpose分域产出子代理默认模型触发 429 时切换 model: "lite" 可用;范例先由主代理写 docs/logs.md 固化为模板。
  • 子代理无法 SendMessage非 team 会话),改为在回复中汇报。