浅谈OWASP TOP 10

见好多招聘要求都包括top 10 ,今天就来总结一下,也为了本身加深记忆html

TOP1-注入

简单来讲,注入每每是应用程序缺乏对输入进行安全型检查所引发的,攻击者把一些包含指令的数据发送给解释器,解释器会把收到的数据转换成指令执行。常见的注入包括sql注入,--os-shell,LDAP(轻量目录访问协议),xpath(XPath即为XML路径语言,它是一种用来肯定XML标准通用标记语言的子集)文档中某部分位置的语言),HQL注入等。web

危害以下:sql

注入能够致使数据丢失或被破坏,缺少可审计性或拒绝服务。注入漏洞有时甚至可致使彻底接管主机shell

如何防范:数据库

1.使用安全的API,避免使用解释器浏览器

2.对输入的特殊的字符进行ESCAPE转义处理安全

例子:LIKE '%M%' ESCAPE ‘M’服务器

使用ESCAPE关键字定义了转义字符“M”,告诉DBMS将搜索字符串“%M%”中的第二个百分符(%)做为实际值,而不是通配符cookie

3.使用白名单来规范化的输入验证方法session

 

TOP2-失效的身份认证和会话管理

与认证和会话管理相关的应用程序功能每每得不到正确实施,致使了攻击者能够破坏密码,密钥,会话令牌或实施漏洞冒充其余用户身份

危害以下:

这些漏洞可能致使部分甚至所有帐户遭受攻击,一旦攻击成功,攻击者就能执行合法的任何操做

如何防范:

1.使用内置的会话管理功能

2.经过认证的问候

3.使用单一的入口点

4.确保在一开始登陆SSL保护的网页

 

TOP3-跨站XSS

跨站脚本是最广泛的web应用安全漏洞。当应用程序在发送给浏览器的页面中包含用户提供的数据,但没有通过适当验证和转义,就会致使跨站

危害以下:

攻击者在受害者浏览器中执行脚本以劫持用户会话,插入恶意内容,重定向用户,使用恶意软件劫持用户浏览器等

种类:

存储型,反射型,DOM型

如何防范:

1.验证输入

2.编码输出(用来确保输入的字符被视为数据,而不是做为html被浏览器所解析)

 

TOP4-不安全的对象直接引用

意指一个已经受权的用户经过更改访问时的一个参数,从而访问到本来其并无获得受权的对象

危害以下:

这种漏洞能够损坏参数所引用的全部数据

如何防范:

1.使用基于用户或会话的间接对象访问,这样可防止攻击者直接攻击为受权资源

2.访问检查:对任何来自不受信源所使用的全部对象进行访问控制检查

3.避免在url或网页中直接引用内部文件名或数据库关键字

4.验证用户输入和url请求,拒绝包含./ ../的请求

 

TOP5-伪造跨站请求(CSRF)

跨站请求伪造,利用了网站容许攻击者预测特定操做全部细节这一特色。因为浏览器自动发送会话cookie等认证凭证,致使攻击者能够建立恶意的web页面来产生伪造请求。这些伪造的请求很难和合法的请求区分开

危害以下:

攻击者可让受害者用户修改任何容许修改的数据,执行任何用户容许的操做,例如修改密码,登陆注销等

如何防范:

1.给每一个HTTP请求添加一个不可预测的令牌,并保证该令牌对每一个用户会话来讲是惟一的。

最好的办法就是将独有的令牌包含在隐藏字段中,经过HTTP请求发送,避免在URL中暴露出来

2.要求用户从新认证或判断他们是一个真实德用户

 

TOP6-安全误配置

安全配置错误能够发生在一个应用程序堆栈的任何层面,包括平台,web服务器,应用服务器,数据库,架构和自定义的代码。攻击者经过访问默认帐户,未使用的网页,未安装的补丁的漏洞,未被保护的文件和目录等,以得到对系统为受权的访问

危害以下;

系统可能在未知的状况下被彻底攻破,用户数据可能随着时间被所有盗走或篡改。甚至致使整个系统被彻底破坏

如何防范:

1.自动化安装部署

2.及时了解并部署每一个环节的软件更新和补丁信息

3.实施漏洞扫描和安全审计

 

TOP7-限制URL访问失败(缺乏功能级访问控制)

这个漏洞也是与认证相关的,这种漏洞具体是指在系统已经对url的访问作了限制的状况下,但这种限制并无生效。常见的例子是系统没有对用户进行角色的检查,以及用户经过修改URL的action并指向未被受权页面就能访问该页面一样是个漏洞

危害以下:

攻击者很容易就能把网址改为享有特权的网页,这样就可使用匿名或普通用户访问未授保护的私人页面,从而提高未受权功能和相关数据信息

如何防范:

1.检查管理权限的过程并确保可以容易进行升级和审计

2.默认缺省状况下,应该拒绝全部访问的执行权限。对于每一个功能得访问,须要明确的角色受权

3.检查每一个功能分配的权限合理有效

 

TOP8-未验证的重定向和转发

在Web应用中重定向是极为普通的,而且一般重定向所引起的目的是带有用户输入参数的目的url,而若是这些重定向未被验证,那么攻击者就能够引导用户访问他们想要用户访问的站点

一样,转发也是极为广泛的,本质上转发是在同一个应用中对一个新页面发送请求,而且有时是用参数来定义目标页面的。一样,若是参数未被验证,那么攻击者就能够利用其来绕过认证或是受权检查

危害以下:

攻击者经过重定向能够试图安装恶意软件或诱使受害人泄露密码等铭感信息,经过转发能够绕过访问限制

如何防范:

1.避免使用重定向和转发

2.若是使用了,不要在肯定目标时涉及到用户参数

3.若是没法避免使用用户参数,则应确保目标参数值对于当前用户是有效的并已受权

若是是须要登陆的,能够从session当中获取登陆信息,而后判断

 

TOP9-应用已知脆弱性的组件

应用程序使用带有已知漏洞的组件会破坏应用程序防护系统,可能致使严重的数据丢失或服务器接管

如何防范:

1.识别正在使用的组件和版本,包括全部的依赖

2.更新组件或引用的库文件到最新

3.创建安全策略来管理组件的使用

 

TOP10-敏感信息暴露

这个好像没什么可说的,就注重对敏感数据的保护便可

相关文章
相关标签/搜索