Files
full/docs/README.md
2026-09-22 18:53:53 +08:00

5.7 KiB
Raw Blame History

代码审计文档索引2026-09-22

本目录是 BSM Infra Full 后端 Go workspace 的逐微服务代码审计报告。审计基于静态源码阅读,覆盖 module/ 下 18 个业务服务、pkgs/allpkgs/ecmall 两个聚合入口,以及工作区与工程脚本。

审计方式:只读静态分析,不修改任何源码。结论均带 文件:行号 证据;无法确认处以【信息不足】标注。 修复建议仅针对实际缺陷给出最小、直接的动作,不包含引入统一框架、抽象层、DTO/VO、DDD/CQRS 等过度设计/过度封装方案

交接给后续的文档分层

目录 内容
docs/(本目录) 按微服务名称的审计报告(本文档为索引)
wiki/ 产品级文档总体审计报告、产品与服务目录、架构、运维、API

基础与平台服务域module/base

审计报告 服务 主要职责 最严重问题(摘)
passport.md passport 用户账号与身份认证 验证码登录/注册/找回不校验验证码;找回密码凭 identity 即可改密且写未加盐 MD5
mgt.md mgt 后台组织与权限管理 AppKey 登录明文比对密码列pass-the-hashdev 配置注入 root/123456
initial.md initial 客户端初始化与基础字典 check/config_cache.go:21 ORDER BY 字符串拼接SQL 注入);版本判断非语义版本→强制降级
sender.md sender 短信与邮件发送 腾讯云短信空实现 return nil,nil;日发送量/黑名单限制从未生效;验证码可重放
fts.md fts 文件传输与上传存储 上传路由前缀不一致;文件类型/大小校验次序问题
cloud.md cloud 个人云空间与资料管理 空间唯一键导致多用户不可用;私人资料"加密"名不副实;根目录空指针 panic
cms.md cms 站点内容管理 文章/评论越权删改;评论发布 panic赞踩无去重可刷负Site 全系列占位
ads.md ads 公共广告位内容分发 README 宣称的缓存完全未实现Redis 零引用);鉴权口径自相矛盾
feedback.md feedback 意见反馈管理 Modify/Delete/Remark 以入参 identity 为唯一条件→越权改他人反馈;接口全匿名
logs.md logs 业务操作日志 路由无鉴权fetch 键名不一致与 level 断言双 panic分页参数失效IP 过滤写反

电商与交易服务域module/ec

审计报告 服务 主要职责 最严重问题(摘)
address.md address 收货地址簿 Get/Modify/Delete 无归属约束→越权读改删他人地址(可遍历 id 拿姓名/手机号/住址Fetch 恒空
mall.md mall 店铺与商品经营 员工验证码登录不校验验证码;店铺支付/邮件凭据任意登录用户可读改12 处写操作无店铺归属校验
market.md market 代理与供应商管理 审核无鉴权、开号/删号鉴权被注释;登录令牌 AES 与鉴权 JWT 互斥 + 解析失败 panicData 确认为空实现
order.md order 购物车与订单生命周期 模拟支付/发货生产可达且硬编码支付参数;OrderApprove 无鉴权;优惠券做加法致应付变高;扣库存不检查 RowsAffected→超卖

资金与支付服务域module/finance

审计报告 服务 主要职责 最严重问题(摘)
wallet.md wallet 钱包与支付接入 支付回调不验签、客户端可自证支付成功;提现只校验不扣减且无幂等;余额扣减读后写→双花;支付宝分支必然 panic微信密钥明文入库

社交服务域module/social

审计报告 服务 主要职责 最严重问题(摘)
feed.md feed 社交动态与内容互动 动态越权删改 + 私密动态泄露;分页 Limit(page) 错误;DeleteComment 空函数HTTP gateway 不可用
group.md group 群组与成员管理 入群审批无角色校验Modify 重写群 identity 致成员脱钩;列名错误使核心接口恒失败
relation.md relation 好友、关注与匹配 通过申请可单方面加任意陌生人为好友TagFetch 必然 panic7 个接口引用不存在的 relation_id

聚合入口与工程

审计报告 对象 最严重问题(摘)
pkgs-all.md pkgs/all15 服务聚合) grpc-gateway 404 与业务 NotFound 无法区分→真实错误响应被覆盖JWT 密钥默认值恰 32 字节可自签;无生产配置
pkgs-ecmall.md pkgs/ecmall14 服务聚合) 同源 404 分流缺陷与密钥问题;聚合不建表不播种→首次部署缺表缺管理员
workspace-and-scripts.md go.work 与 scripts api-docgen 当前无法构建且版本长期漂移SDK 指向仓库外相对路径不可移植;验证脚本 gofmt 门禁有缺口

统计