跳转到主要内容

安全编码

本文约需 2 分钟阅读

安全编码是指为在软件的设计与实现阶段不引入漏洞而采用的编程方法和原则的总称。 OWASP Top 10 和 CWE/SANS Top 25 中列举的许多漏洞,例如输入校验不足和内存管理错误,都是可以在编码阶段防范的。发布后修复漏洞的成本据称是开发阶段的 30 倍以上,因此「左移」(shift left) 的理念备受重视。在 2025 年的 OWASP Top 10 中,安全设计的缺失位列前茅,从设计阶段就内建安全的要求愈发强烈。

现场使用案例

“在新 API 的开发中,输入校验的实现遗漏被 SAST 工具 (Semgrep) 的扫描检测出来。我们对请求体的 JSON 字段添加了类型检查和长度限制,并强化了 CI 流水线中的自动检测规则。”

主要原则与实践

安全编码的基本原则有四条:验证输入 (不信任任何外部输入)、应用最小权限、实现纵深防御,以及采用安全的默认配置。具体来说,可举出防止 SQL 注入的参数化查询、防止 XSS 的输出转义,以及防止缓冲区溢出的边界检查等。安全编码入门书 (Amazon)可供系统学习。

开发现场的实践

在实务中,常见的做法是将静态分析工具 (SAST) 集成到 CI/CD 流水线中,对每次提交自动检测漏洞。 SonarQube 、 Semgrep 、 CodeQL 等工具被广泛使用。不过,仅凭工具无法检测逻辑性漏洞 (例如授权绕过),因此与代码审查并用必不可少。请用强随机密码保护代码仓库和部署环境,防止源代码被非法篡改。开发安全书籍 (Amazon)也可供参考。

相关术语

这篇文章对您有帮助吗?

XHatena