Files
full/wiki/audit-2026-08-10.md
2026-08-10 11:42:45 +08:00

2.4 KiB
Raw Blame History

代码审计报告2026-08-10

范围

覆盖根 workspace、all、19 个业务模块、配置样例和维护脚本。执行结构盘点、敏感信息扫描、TODO/异常退出扫描和全部 module 测试。

已修复

优先级 问题 处理
P0 19 个 go.mod 绑定 D:/work/bsm-sdk/core 移除绝对路径 replace20 个 module 测试仍通过
P0 样例含公网地址、固定 secret 和开发机私钥路径 改为 localhost 或 CHANGE_ME
P1 workspace 直接参与路径构造 限制字符和长度、转小写、增加测试
P1 聚合入口缺少连接防护 增加 ReadHeaderTimeout、IdleTimeout、MaxHeaderBytes
P1 gRPC GracefulStop 可能无限等待 受 context 约束,超时强制 Stop
P2 缺少统一验证入口 新增 PowerShell 和 Bash 验证脚本
P2 README 乱码且过时 重写 README 并建立 wiki

尚存风险

P0默认管理员密码

module/base/mgt/internal/models/init_db.go 仍包含 root 默认密码 123456。建议改为必填环境变量或一次性随机密码未提供安全凭据时拒绝初始化。

P1弱密码哈希

market、mall 等部分逻辑仍使用 MD5 加盐。应迁移至 bcrypt、scrypt 或 Argon2id并采用登录时升级旧哈希的兼容策略。

P1reflection 与明文 h2c

all 默认启用 gRPC reflection自身不终止 TLS。生产环境应在可信网络运行由网关终止 TLS并将 reflection 改为配置控制。

P1未实现接口

social、wallet、mall、cms 等仍有模板 TODO。编译成功不代表功能完整未实现 RPC 应明确返回 Unimplemented。

P2测试覆盖不足

多数 package 没有测试。应优先覆盖认证、权限、支付、订单状态机、迁移和 all 请求分流。

P2迁移与启动耦合

多个 models.New 会自动迁移或 seed。建议拆分连接、迁移、seed支持蓝绿发布、只读实例和回滚。

建议路线

  1. 消除默认管理员密码并迁移弱密码哈希。
  2. 配置化 reflection、初始化行为和 TLS 信任边界。
  3. 为 auth、mgt、order、wallet 建立核心路径测试。
  4. 将数据库迁移和 seed 从进程启动拆出。
  5. CI 增加 workspace 验证、凭据扫描、proto 一致性和依赖漏洞扫描。

审计基线:全部 20 个 workspace module 的 go test ./... 通过;不包含真实基础设施集成测试。