# 代码审计报告(2026-08-10) ## 范围 覆盖根 workspace、all、19 个业务模块、配置样例和维护脚本。执行结构盘点、敏感信息扫描、TODO/异常退出扫描和全部 module 测试。 ## 已修复 | 优先级 | 问题 | 处理 | | --- | --- | --- | | P0 | 19 个 go.mod 绑定 D:/work/bsm-sdk/core | 移除绝对路径 replace;20 个 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。建议改为必填环境变量或一次性随机密码;未提供安全凭据时拒绝初始化。 ### 已修复:market、mall 弱密码哈希 market 和 mall 的账号创建、登录、改密及初始化密码已从 MD5 加盐切换为 bcrypt。历史 MD5 记录需要通过密码重置流程迁移。 ### P1:reflection 与明文 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 ./... 通过;不包含真实基础设施集成测试。