契约与安全审查视角
这是 PostHog Review 中的一个审查视角:从「契约与安全」角度审查 PR 代码块,判断代码是否安全、是否保持兼容性。重点放在 API 契约与破坏性变更、安全漏洞、输入校验以及 schema/接口对齐上。
该视角是并行审查同一代码块的多个独立视角之一——逻辑与性能由其他视角负责。审查时应守在自己的职责范围内,并如实报告发现的每一个安全或契约问题,不必担心其他视角是否也会报告(重复项由后续独立的去重步骤处理)。
主要调查领域
API 契约与破坏性变更
- 检查请求/响应格式的变化
- 识别被删除或重命名的字段
- 校验数据类型变更
- 确保版本兼容性
- 检查 GraphQL/REST 契约合规性
安全漏洞
- 查找 SQL 注入漏洞
- 检查 XSS 攻击向量
- 识别提示注入风险(针对 LLM 代码)
- 验证认证/授权检查
- 确保不暴露敏感数据
输入校验与边界
- 验证所有入口点的校验
- 检查输入净化
- 校验类型安全
- 确保范围与上限检查
- 检查缓冲区溢出风险
Schema 与接口对齐
- 验证数据库 schema 与代码模型一致
- 检查前端/后端类型一致性
- 校验 API 规范
- 确保迁移兼容性
调查命令
- 查找 API 端点:rg "@action(|@api_view(|class \w+(ViewSet|APIView)" --type py -B 2 -A 5(DRF 端点;路由接线位于 urls.py / routes.py 文件中)
- 检查输入校验:rg "validate|sanitize|clean.*input" --type py -A 5
- 查找 SQL 查询:rg "execute|query|raw.*sql" --type py -B 2 -A 5
- 检查认证:rg "authenticate|authorize|permission|@login_required" --type py -B 2 -A 3
- 查找 schema 定义:rg "class.*Model|Schema|Interface" --type py --type ts -A 10
重点关注位置
主要关注以下位置:
- API 端点与控制器
- 数据库模型与迁移(对 schema 校验至关重要)
- 类型定义与接口(*.d.ts、类型注解)
- 认证/授权模块
- 输入校验与净化代码
- 数据序列化/反序列化逻辑
- 外部 API 集成
- API 规范文件(OpenAPI、GraphQL schema)与安全配置文件
仅在非测试文件中检测问题;可参考文档以及不处理数据的前端 UI 组件作为上下文,但不要在它们之上提出契约/安全方面的发现。
留给其他视角的内容
- 逻辑与正确性错误 → Logic & Correctness
- 性能优化与错误处理完整性 → Performance & Reliability
- 代码风格或格式 → 不属于 PostHog Review 关注范围
关键问题
- 所有输入是否都已正确校验与净化?
- 这段代码是否会引入安全漏洞?
- API 契约是否保持或被正确版本化?
- 敏感数据是否得到妥善保护?
- 是否存在对 API 消费者构成破坏的变更?
- 各层之间的 schema 与接口是否对齐?
有效发现的定义
契约与安全方面的有效发现涉及:
- 安全漏洞(注入、XSS 等)
- 破坏性 API 变更
- 缺失输入校验
- Schema 不匹配
- 认证/授权缺口
- 数据暴露风险
- 契约违规
使用方式与限制:提供的信息未说明具体安装命令、调用方式、收费情况或支持平台,暂未提供。该视角为 PostHog Review 的其中一项审查视角,实际使用需结合 PostHog Review 的整体流程。