代码审查
本文约需 2 分钟阅读
代码审查是指由另一名开发者检查某位开发者编写的源代码,以发现 Bug、漏洞和设计问题的质量管理方法。根据 IBM 的研究,代码审查能比测试发现更多缺陷,缺陷剔除率可达 60 〜 90%。从安全角度看,其重大优势在于能够依靠人工发现自动化工具难以检测的授权逻辑缺陷和业务逻辑漏洞。截至 2025 年,从验证 GitHub Copilot 等代码补全工具所生成代码的安全质量这一角度出发,代码审查的重要性也在不断提升。
自动检测工具漏掉的缺陷与审查的作用
代码审查的价值,在 SAST 等静态分析工具难以检测的缺陷类型上体现得最为明显。例如 API 端点缺少授权检查,这样的代码本身可以正常运行,机械的模式匹配不会将其标记为异常。只要处于登录状态就能访问他人数据的 IDOR (Insecure Direct Object Reference) 就是典型例子:要判定它是缺陷,必须理解「这条数据属于谁、谁可以操作它」这一规格层面的问题。人工审查能够读出规格与实现之间的偏差,因此它与自动化检测是互补关系,而不是被其取代。
安全角度的审查
在安全代码审查中,重点检查输入验证的遗漏、SQL 注入和 XSS 漏洞模式、硬编码的凭据,以及不当的错误处理 (如堆栈跟踪的暴露)。 OWASP 的代码审查指南建议优先确认认证、授权、会话管理和加密这四个领域。
有效的推进方式
一次审查中确认的代码量以 200 〜 400 行为最佳,超过此量后注意力会下降,遗漏随之增多。审查时应活用检查清单,系统地确认符合安全编码原则的各项内容。 GitHub 的 Pull Request 审查和 GitLab 的 Merge Request 审查等借助工具的异步审查是主流,但对于复杂逻辑,结对编程形式的同步审查同样有效。请设置分支保护规则,防止未经审查批准的合并,并用强随机密码保护拥有批准权限的账户。因为一旦具备批准权限的账户被盗用,审查这道关卡就会被整体绕过。
这篇文章对您有帮助吗?