# 代码审计文档索引(2026-09-22) 本目录是 BSM Infra Full 后端 Go workspace 的**逐微服务代码审计报告**。审计基于静态源码阅读,覆盖 `module/` 下 18 个业务服务、`pkgs/all`、`pkgs/ecmall` 两个聚合入口,以及工作区与工程脚本。 > 审计方式:只读静态分析,不修改任何源码。结论均带 `文件:行号` 证据;无法确认处以【信息不足】标注。 > 修复建议仅针对实际缺陷给出最小、直接的动作,**不包含引入统一框架、抽象层、DTO/VO、DDD/CQRS 等过度设计/过度封装方案**。 ## 交接给后续的文档分层 | 目录 | 内容 | | --- | --- | | `docs/`(本目录) | 按微服务名称的审计报告(本文档为索引) | | `wiki/` | 产品级文档:总体审计报告、产品与服务目录、架构、运维、API | ## 基础与平台服务域(module/base) | 审计报告 | 服务 | 主要职责 | 最严重问题(摘) | | --- | --- | --- | --- | | [passport.md](passport.md) | passport | 用户账号与身份认证 | 验证码登录/注册/找回**不校验验证码**;找回密码凭 identity 即可改密且写未加盐 MD5 | | [mgt.md](mgt.md) | mgt | 后台组织与权限管理 | AppKey 登录**明文比对密码列**(pass-the-hash);dev 配置注入 `root/123456` | | [initial.md](initial.md) | initial | 客户端初始化与基础字典 | `check/config_cache.go:21` **ORDER BY 字符串拼接(SQL 注入)**;版本判断非语义版本→强制降级 | | [sender.md](sender.md) | sender | 短信与邮件发送 | 腾讯云短信**空实现** `return nil,nil`;日发送量/黑名单限制**从未生效**;验证码可重放 | | [fts.md](fts.md) | fts | 文件传输与上传存储 | 上传路由前缀不一致;文件类型/大小校验次序问题 | | [cloud.md](cloud.md) | cloud | 个人云空间与资料管理 | 空间唯一键导致**多用户不可用**;私人资料"加密"名不副实;根目录空指针 panic | | [cms.md](cms.md) | cms | 站点内容管理 | 文章/评论**越权删改**;评论发布 panic;赞踩无去重可刷负;`Site` 全系列占位 | | [ads.md](ads.md) | ads | 公共广告位内容分发 | README 宣称的缓存**完全未实现**(Redis 零引用);鉴权口径自相矛盾 | | [feedback.md](feedback.md) | feedback | 意见反馈管理 | `Modify/Delete/Remark` 以入参 identity 为唯一条件→**越权改他人反馈**;接口全匿名 | | [logs.md](logs.md) | logs | 业务操作日志 | 路由**无鉴权**;`fetch` 键名不一致与 `level` 断言**双 panic**;分页参数失效;IP 过滤写反 | ## 电商与交易服务域(module/ec) | 审计报告 | 服务 | 主要职责 | 最严重问题(摘) | | --- | --- | --- | --- | | [address.md](address.md) | address | 收货地址簿 | `Get/Modify/Delete` **无归属约束→越权读改删他人地址**(可遍历 id 拿姓名/手机号/住址);Fetch 恒空 | | [mall.md](mall.md) | mall | 店铺与商品经营 | 员工验证码登录**不校验验证码**;店铺**支付/邮件凭据任意登录用户可读改**;12 处写操作无店铺归属校验 | | [market.md](market.md) | market | 代理与供应商管理 | 审核**无鉴权**、开号/删号鉴权被注释;登录令牌 AES 与鉴权 JWT 互斥 + 解析失败 panic;`Data` 确认为空实现 | | [order.md](order.md) | order | 购物车与订单生命周期 | **模拟支付/发货生产可达**且硬编码支付参数;`OrderApprove` 无鉴权;优惠券**做加法**致应付变高;扣库存不检查 RowsAffected→超卖 | ## 资金与支付服务域(module/finance) | 审计报告 | 服务 | 主要职责 | 最严重问题(摘) | | --- | --- | --- | --- | | [wallet.md](wallet.md) | wallet | 钱包与支付接入 | 支付回调**不验签**、客户端可自证支付成功;提现**只校验不扣减**且无幂等;余额扣减读后写→双花;支付宝分支必然 panic;微信密钥明文入库 | ## 社交服务域(module/social) | 审计报告 | 服务 | 主要职责 | 最严重问题(摘) | | --- | --- | --- | --- | | [feed.md](feed.md) | feed | 社交动态与内容互动 | 动态**越权删改** + 私密动态泄露;分页 `Limit(page)` 错误;`DeleteComment` 空函数;HTTP gateway 不可用 | | [group.md](group.md) | group | 群组与成员管理 | 入群审批**无角色校验**;`Modify` 重写群 identity 致成员脱钩;列名错误使核心接口恒失败 | | [relation.md](relation.md) | relation | 好友、关注与匹配 | 通过申请**可单方面加任意陌生人为好友**;`TagFetch` 必然 panic;7 个接口引用不存在的 `relation_id` 列 | ## 聚合入口与工程 | 审计报告 | 对象 | 最严重问题(摘) | | --- | --- | --- | | [pkgs-all.md](pkgs-all.md) | pkgs/all(15 服务聚合) | grpc-gateway **404 与业务 NotFound 无法区分**→真实错误响应被覆盖;JWT 密钥默认值恰 32 字节可自签;无生产配置 | | [pkgs-ecmall.md](pkgs-ecmall.md) | pkgs/ecmall(14 服务聚合) | 同源 404 分流缺陷与密钥问题;聚合不建表不播种→首次部署缺表缺管理员 | | [workspace-and-scripts.md](workspace-and-scripts.md) | go.work 与 scripts | `api-docgen` 当前**无法构建**且版本长期漂移;SDK 指向仓库外相对路径不可移植;验证脚本 gofmt 门禁有缺口 | ## 统计 - 审计对象:**21 篇报告**(18 业务服务 + 2 聚合入口 + 1 工作区/脚本) - 覆盖:`module/` 903 个 `.go`、66 个 `.proto`、58 个 `.yaml`;`pkgs/` 54 个 `.go` - 跨服务汇总与修复优先级:[`wiki/audit-2026-09-22-总体审计报告.md`](../wiki/audit-2026-09-22-总体审计报告.md) - 产品与服务目录:[`wiki/产品与服务目录.md`](../wiki/产品与服务目录.md)