owasp安全编码规范详情

owasp安全编码规范详情

ID:27672602

大小:86.50 KB

页数:9页

时间:2018-12-03

owasp安全编码规范详情_第1页
owasp安全编码规范详情_第2页
owasp安全编码规范详情_第3页
owasp安全编码规范详情_第4页
owasp安全编码规范详情_第5页
资源描述:

《owasp安全编码规范详情》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、OWASP安全编码规范详情0x00原则概览开发安全的软件耑要对安全原则有基本的Y解。虽然对于安全原则的全面评佔超出丫本指南的范围,但是我们还是提供了一个快速的概览。软件安全的目称是要维护信息资源的保密性,完整性,和可用性,以确保业务的成功运作。该目标通过实施安全控制来实现。本指南重点介绍具体的技术控制,以缓解常见软件漏洞的发生。姐然主要的关注点是Web应川程序及其配套的基础设施,似是本指南的大部分内容可应川于任意软件部署平台。为丫保护业务免受來自与软件相关的不能接受的风险,丫解风险的意义是很朽帮助的。风险是一组威胁业务

2、成功因素的集合。它可以被定义为:一个威胁代理与一个付能含有漏洞的系统交互,该漏洞可被利用并造成影响。虽然这可能看起来象是一个抽象的概念,但可以这样想象它:一个汽车盗窃犯(威胁代理)来到一个停车场(系统)寻找没有锁车门(漏洞)的车,当找到一个时,他们打开门(利用)并拿走里面任何的东西(影响)。所有这些因素在安全软件开发时都扮演了一个角色。开发团队采用的方法和攻击者攻击应用程序所采用的方法之间有一个根本区别。开发团队通常采用的方法是基T应用程序的目的行为。换句话说,开发团队根据功能需求文档和用例设计一个应用程序以执行特定的

3、任务。而另一方面,攻击者,基于“没有具体说明应拒绝的行为,则被认为是可行的”原则,对于应用程序可以做什么更感兴趣。为了解决这个问题,•些额外的元素需要被集成到软件生命周期的早期阶段。这些新元素是安全耑求和滥用实例。本指雨旨在帮助明确高等级的安全耑求,并解决许多常见的滥用惜况。Web开发团队应当明白,基于客户端的输入验证、隐藏字段和界而控件(例如,下拉键和单选按钮)的客广端控制,所带来的安全性收益是有限的,这一点非常重要。攻击者可以使用工具,比如:客户端的Web代理(例如,OWASPWebScarab,Burp)或网络数

4、据包捕获工具(例如,Wireshark),进行应用程序流量分析,提交定制的请求,并绕过所科的接U。另外,Plash,JavaApplet和其它客户端对象可以被反编译并进行漏洞分析。软件的安全漏洞可以在软件开发生命周期的任何阶段被引入,包拈:最初没有明确的安全需求;创建有逻辑错误的概念设计;使用糟糕的编码规范,从而带来了技术漏洞:软件部署不当;在维护或者更新过程中引入缺陷。此外,还有重要的一点需要明白,软件漏洞可以超出软件本身的范围。根据不同的软件、漏洞和配套基础设施的性质,一次成功的攻击会影响下面任何或者所有的方面:软

5、件和其相关的信息;相关服务器的操作系统;后端数据库;在共享环境屮的其它应用程序;用户的系统;与川户交互的其它软件。0x01输入验证在可信系统(比如:服务器)上执行所有的数据验证。识别所有的数据源,并将其分为可信的和不可信的。验证所有来自不可信数据源(比如:数据库,文件流,等)的数据。应当为应用程序应提供一个集中的输入验证规则。为所有输入明确恰当的字符集,比如:UTF-8。在输入验证前,将数据按照常用字符进行编码(规范化)。丢弃任何没有通过输入验证的数据。确定系统是否支持UTF-8扩展字符集,如果支持,在UTF-8解码完

6、成以后进行输入验证。在处理以前,验证所有来自客户端的数据,包括:所有参数、URL、HTTP头信息(比如:cookie名字和数据值)。确定包招了来AJavaScript、Flash或其•他嵌入代码的postback信息。验证在请求和响应的报头信息中只含有ASCII字符。核实来自重定向输入的数据(•个攻击者可能向重定向的0标直接提交恶意代码,从而避开应用程序逻辑以及在重定向前执行的任何验证)。验证正确的数据类型。验证数据范围。验证数据长度。尽可能采用“白名单”形式,验证所有的输入。如果任何潜在的危险字符必须被作为输入,请确

7、保您执行丫额外的控制,比如:输出编码、特定的安全API、以及在应用程序中使用的原因。部分常见的危险字符包拈:<〉"’%()&+\’〃。如果您使用的标准验证规则无法验证下面的输入,那么它们需要被中.独验证:o验证空字节(%00):o验证换行符(%0d,%0a,r,);o验证路径替代字符“点-点-斜杠”(../或..)。如果支持UTF-8扩展字符集编码,验证替代字符:%cO%ae%cO%ae/(使用规范化验证双编码或其他类型的编码攻击)。0x02输出编;在可信系统(比如:服务器)上执行所有的编码。为每一种输出编

8、码方法采用一个标准的、己通过测试的规则。通过语义输出编码方式,对所有返回到客广端的来自于应用程序信任边界之外的数裾进行编码。HTML实体编码是一个例子,但不是在所有的情况下都可用。除非对0标编译器是安全的,否则请对所育字符进行编码。针对SQL、XML和LDAP查询,语义净化所有不可信数据的输出。对于操作系统命令,净化所有不可信数据

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。