软件安全、可追溯性及测试文档指南
1. 有效的代码审查
减少应用程序安全漏洞最有效的方法之一是通过系统且专业的代码审查流程。但代码审查往往会沦为各种观点和个人偏好的堆积地,这不仅无法提高代码质量,还可能导致在最后时刻进行更改,从而使应用程序暴露漏洞。
在产品开发生命周期中专门设置安全代码审查阶段,有助于大幅减少投入生产的代码中的漏洞数量。软件工程师通常专注于构建功能良好的系统,却缺乏发现缺陷的思维,尤其是对自己编写的代码。因此,不应自行测试代码(除了开发时进行的基本测试),更不应自行进行应用程序的安全测试。
团队合作使我们能够审查他人的代码,但必须以有效的方式进行。代码审查所需的脑力与编写软件相当,特别是审查复杂代码时。审查同一功能的时间不应超过两小时,否则会遗漏重要缺陷,对细节的关注度也会降至危险水平。在基于微服务的架构中,由于功能相对较小,在合理时间内审查代码并非难事,尤其是与代码作者沟通其意图后。
代码审查应遵循两个阶段:
- 快速审查代码以了解整体情况:包括代码的工作原理、使用的不熟悉技术以及是否实现预期功能等。
- 按照预先确定的检查清单审查代码,该清单取决于公司所开发软件的性质。
通常,代码审查中与安全相关的检查项可归纳为以下几点:
- 所有输入是否在适用时进行了验证/编码?
- 所有输出(包括日志)是否进行了编码?
- 是否使用跨站请求伪造令牌保护端点?
- 数据库中的所有用户凭据是否进行了加密或哈希处理?
通过检查这些项目,能够识别应用程序中的主要安全问题。
2. 可追溯性
在现代信息系统中,可追溯性极
超级会员免费看
订阅专栏 解锁全文
1460

被折叠的 条评论
为什么被折叠?



