研发协作
对已检出分支或 PR 变更做热核级深度审查:彻底发现安全漏洞…
当需要对一个已检出分支或 PR 的变更进行极彻底的安全与正确性审计时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
对已检出分支或 PR 变更做热核级深度审通用
解决思路
- 以安全专家身份对已检出分支及其变更做全面审查,极彻底地审计 bugs、破坏现有功能/功能的变更和安全漏洞。
- 在审查全过程中必须极度彻底、严谨、仔细、有雄心、专注,确保没有任何问题漏掉。
- 将报告范围限制为本次 PR 中新增或修改的代码,聚焦 diff 中的变更;不要报告未被修改的既有代码中的漏洞。
- 认识到代码库复杂且跨包/模块依赖多,简单变更可能与其他功能产生细微交互;必须追踪变更可能的副作用,判断是否破坏其他位置的功能。
- 找出会破坏开发者本地运行/构建体验的变更,包括但不限于:修改 secrets 的读取方式或读取来源;更新环境变量名或新增环境变量;重映射端口/网络;新增必须运行的脚本才能让某些功能继续工作。此类变更会改变开发者当前运行/构建代码的方式;但引入新的替代运行/构建方式不算,使用包管理器添加依赖也不算,除非要求用户做正常开发流程之外的全新事情,例如从网站/App Store 手动安装软件。
- 检查代码库是否用 feature flag 或 internal-only 检查门控功能;绝不允许本应在 feature gate 后的功能泄漏;这类泄漏常很隐蔽,需非常小心和彻底。
- 若发现高风险问题,但分支意图就是引入它(例如破坏功能、移除 feature flag、移除 safeguard)且变更范围约束良好,则不要浪费时间报告;但如果作者可能未意识到完整影响、可能低估负面影响(极端例子:PR 标题「Delete the database」),或怀疑变更恶意,仍要报告。
- 不要把非高优先级/无意义问题报为 High;绝不误报优先级/重要性;报告前端到端追踪问题,直到有完整且完全的信心。
- 如果有中高优先级/风险发现,且此分支有 PR,则使用 gh/glab cli 检查 PR/MR 讨论,看是否有 BugBot 或其他人的评论。
- 如果 PR/MR 讨论中存在 BugBot 或其他人的评论,则将其发现纳入考虑。
- 如果 PR/MR 讨论中的评论发现了你漏掉的问题,评估其是否有效,并将有效问题纳入报告。
- 如果 PR/MR 讨论中的评论发现了与你相同的问题,检查他们的发现中是否有值得纳入你回应的内容。
- 对你纳入报告的、由 BugBot 或其他人发现的问题进行标记。
- 绝不在研究未完成时呈现问题;例如不要在有权限检查后端代码时说「客户端有问题 X,但若后端处理就没问题」却不检查后端。
- 必须等到完成审计之后再检查 PR/MR 讨论,以便审查时保持 fresh eyes。
适用边界 · 注意事项
- 如果只是轻量代码审查,不需要覆盖 diff 的安全、正确性、破坏性、devex 和 feature gate 泄漏,则不适用。
- 如果无法获取已检出分支的 diff 或没有变更可审,则不适用。
- 当高风险问题明确是分支有意为之、变更范围约束良好且作者完全了解影响时,不应再报告该问题,以免浪费作者时间。