Skip to content

Latest commit

 

History

History
65 lines (59 loc) · 3.95 KB

File metadata and controls

65 lines (59 loc) · 3.95 KB

全量代码安全与逻辑审查执行计划

日期:2026-02-11 状态:草案(等待你确认) 审查范围:整个仓库(frontend + backend + supabase SQL + config/scripts

1. 审查目标

  1. 识别安全漏洞(认证、访问控制、输入处理、数据暴露、滥用防护)。
  2. 识别运行时/业务逻辑问题(状态竞争、重试与超时行为、边界条件、数据一致性)。
  3. 输出按优先级排序的修复建议,并尽量降低回归风险。

2. 覆盖文件范围

  1. 前端:*.ts*.tsxpages/components/utils/、全局 context 与 API 客户端。
  2. 后端:backend/src/**/*.js,包括 auth/routes/helpers/storage/email/config。
  3. 数据库:backend/supabase/schema.sql 与所有 migration SQL 文件。
  4. 配置与运行:package.jsonvite.config.ts、环境变量读取路径、启动脚本。

3. 执行阶段

  1. 基线梳理与资产盘点
    • 建立完整文件/模块映射与信任边界(前端、API、数据库、对象存储、邮件)。
    • 标记核心流程:注册/登录/重置密码、绑定关系、回忆与事件 CRUD、专注与生理期统计、通知。
    • 产出:审查矩阵(模块 -> 风险点 -> 检查状态)。
  2. 自动化快速检查
    • 依赖风险扫描:npm audit(区分生产依赖和开发依赖影响)。
    • 密钥与配置风险扫描:硬编码密钥、弱默认值、不安全环境变量回退。
    • 静态规则扫描:不安全解析/校验、缺失鉴权、错误信息过度泄漏。
    • 产出:机器扫描发现清单(含误报筛除)。
  3. 后端深度安全审查
    • 身份认证与会话:JWT 签发/校验、有效期、失败路径。
    • 授权与越权:按路由资源归属校验、跨用户数据访问、情侣绑定后的数据边界。
    • 输入校验:body/query/path 参数的类型、长度、范围、格式约束。
    • 抗滥用:限流覆盖、账号枚举风险、暴力尝试面。
    • 文件与图片处理:上传大小/类型校验、存储键生命周期、孤儿文件清理与回退风险。
    • 错误处理与日志:敏感信息暴露、可观测性缺口。
    • 产出:后端问题清单(Critical/High/Medium/Low)+ 精确文件定位。
  4. 前端运行逻辑审查
    • 状态一致性:authContextcontext 同步、过期会话处理。
    • 并发与竞态:乐观更新、重试、轮询、多标签页同步。
    • 失败处理:超时/网络故障回退是否正确,错误提示是否可用。
    • 数据流正确性:分页加载、批量上传分片、部分失败后的数据对账。
    • 产出:前端逻辑微调建议与低风险修复策略。
  5. 数据库与迁移审查
    • 约束与一致性:唯一性、关系完整性、待处理绑定请求的陈旧数据处理。
    • 迁移安全:兼容性、执行顺序、冲突与并发情形。
    • 校验后端实现对 schema 假设是否成立。
    • 产出:schema/migration 风险说明 + SQL 或代码侧修复建议。
  6. 端到端关键流程验证
    • 高风险路径走查与边界用例验证(验证码过期、重复提交、绑定/解绑竞态)。
    • 对比“预期行为”和“实际实现”。
    • 产出:行为偏差清单 + 回归检查清单。
  7. 报告与修复落地方案
    • 按严重度与可利用性汇总问题。
    • 每个问题给出:根因、影响、复现方式、修复建议、回归风险。
    • 给出修复执行顺序(先快修,再结构性优化)。
    • 产出:可直接执行的修复待办列表。

4. 你将收到的输出格式

  1. Findings:按严重级别分组,附具体文件定位。
  2. Logic Tuning Suggestions:逻辑微调建议与预期收益。
  3. Fix Plan:按顺序的改造步骤与验证要求。
  4. Verification Notes:已验证内容与剩余风险。

5. 确认闸门

在你确认前,不会修改业务代码。 你确认后,我再按上述阶段开始全量审查并给出第一版完整问题报告。