REVIEW_AND_HARDENING_PLAN.md
Rama main · réplica de lectura del repositorio original.
# 全面审查与加固执行计划
## 目标
本轮工作自主完成项目级 review、错漏修复、移动端 UI 适配、业务流程补全、平台风控落地、安全漏洞排查、IP 风险追踪和验证能力扩展。所有改动以可运行、可验证、可维护为准,不引入半成品功能。
## 执行原则
- 先发现可落地的问题,再修复;避免只做表面重构。
- 优先修复功能性缺失、逻辑漏洞、安全风险和移动端不可用问题。
- 风控功能要真正接入注册、登录、验证码、OAuth 授权、客户端管理等关键路径。
- 后台功能要能查看、追踪、处理风险事件,而不是只保存配置。
- 验证码提供商扩展不绑定单一 Cloudflare Turnstile,预留 hCaptcha 等平台。
- IP 信息支持 IPv4 / IPv6,位置与风险信息要能进入审计和风控联动。
- 每个阶段完成后运行构建、测试和 `oidc.exe` 编译验证。
## 阶段 1:基线检查
1. 跑前端类型检查与构建。
2. 跑 Go 测试与后端构建。
3. 检查 git 状态、忽略规则、部署配置、workflow。
4. 扫描 TODO/FIXME、未接线接口、空实现、只配置未执行的功能。
## 阶段 2:业务流程与后台管理
1. 用户注册、登录、找回密码、改密、邮箱验证、Passkey、社交登录绑定流程一致性检查。
2. OAuth 授权、撤销授权、开发者应用、后台应用用户管理流程检查。
3. 管理后台用户、客户端、登录方式、全局设置、审计、风险、密钥页面补漏。
4. 用户侧资料、会话、绑定、信任等级、授权应用、近期操作页面补漏。
## 阶段 3:移动端 UI 适配
1. 检查所有用户侧、开发者侧、后台侧页面的表格、卡片、弹窗、导航在小屏下是否溢出或竖排。
2. 对宽表格添加移动端卡片视图或横向滚动。
3. 修复按钮组、表单、长文本、代码块、UUID、URL 在移动端的断行与溢出。
4. 确保重要操作在移动端不被遮挡、不变形。
## 阶段 4:风控系统落地
1. 建立风险事件模型与风险决策服务:允许、挑战、阻断。
2. 将风控接入注册、登录、密码重置、社交登录、OAuth 授权、客户端创建、授权用户举报等关键路径。
3. 支持基于 IP、账号、邮箱、设备/User-Agent、失败次数、注册频率、验证码结果、黑名单的风险评分。
4. 后台提供风险事件查询、处置、封禁/解封和风险策略配置入口。
5. 风控结果写入审计,支持后续追查。
## 阶段 5:验证码提供商扩展
1. 抽象验证码验证器接口。
2. 保留 Turnstile 支持。
3. 增加 hCaptcha 支持。
4. 全局设置支持选择 provider、site key、secret key、启用场景。
5. 前端登录/注册/找回密码表单按配置加载对应验证码组件。
## 阶段 6:IP 位置、风险与 VPN 检测
1. 新增 IP 情报服务接口,支持 IPv4/IPv6。
2. 本地实现基础解析与保守风险判断;配置外部查询接口时可启用更完整地理位置/VPN/代理风险。
3. 审计日志补充 IP 情报字段或风险快照。
4. 管理后台审计与风险页面展示 IP 地址、位置、风险等级、VPN/代理标记。
5. 风控服务使用 IP 风险结果参与阻断/挑战。
## 阶段 7:安全漏洞排查
1. 检查认证、授权、会话、Cookie、CSRF、OAuth state、redirect_uri、client secret、CORS、issuer 等高风险点。
2. 检查 SQL 拼接、输入校验、权限边界、越权访问、IDOR、敏感信息泄露。
3. 检查后台接口是否全部管理员鉴权,用户接口是否按当前用户过滤。
4. 检查 Docker/workflow 是否泄露测试程序、数据库、密钥、临时文件。
## 阶段 8:验证与收尾
1. `npm --prefix frontend run build`
2. `go test ./...`
3. `go build -o oidc.exe ./cmd/server`
4. 检查 git diff 与 git status。
5. 本地提交;需要推送时推送到 GitHub。
## 当前优先级
1. 基线检查与安全/功能缺口定位。
2. 修复明确 bug 和移动端 UI 问题。
3. 落地最小但完整可用的风控主链路。
4. 扩展验证码 provider。
5. 增加 IP 风险展示与联动。