OWASP安全编码规范详情0x00原则概览开发安全的软件需要对安全原则有基本的了解
虽然对于安全原则的全面评估超出了本指南的范围,但是我们还是提供了一个快速的概览
软件安全的目标是要维护信息资源的保密性,完整性,和可用性,以确保业务的成功运作
该目标通过实施安全控制来实现
本指南重点介绍具体的技术控制,以缓解常见软件漏洞的发生
虽然主要的关注点是Web应用程序及其配套的基础设施,但是本指南的大部分内容可应用于任意软件部署平台
为了保护业务免受来自与软件相关的不能接受的风险,了解风险的意义是很有帮助的
风险是一组威胁业务成功因素的集合
它可以被定义为:一个威胁代理与一个可能含有漏洞的系统交互,该漏洞可被利用并造成影响
虽然这可能看起来象是一个抽象的概念,但可以这样想象它:一个汽车盗窃犯(威胁代理)来到一个停车场(系统)寻找没有锁车门(漏洞)的车,当找到一个时,他们打开门(利用)并拿走里面任何的东西(影响)
所有这些因素在安全软件开发时都扮演了一个角色
开发团队采用的方法和攻击者攻击应用程序所采用的方法之间有一个根本区别
开发团队通常采用的方法是基于应用程序的目的行为
换句话说,开发团队根据功能需求文档和用例设计一个应用程序以执行特定的任务
而另一方面,攻击者,基于“没有具体说明应拒绝的行为,则被认为是可行的”原则,对于应用程序可以做什么更感兴趣
为了解决这个问题,一些额外的元素需要被集成到软件生命周期的早期阶段
这些新元素是安全需求和滥用实例
本指南旨在帮助明确高等级的安全需求,并解决许多常见的滥用情况
Web开发团队应当明白,基于客户端的输入验证、隐藏字段和界面控件(例如,下拉键和单选按钮)的客户端控制,所带来的安全性收益是有限的,这一点非常重要
攻击者可以使用工具,比如:客户端的Web代理(例如,OWASPWebScarab,Burp)或网络数据包捕获工具(例如,Wire