TOP1-注入
当不受信任的数据作为命令或查询的一部分发送到解释器时,会发生注入漏洞,例如SQL,NoSQL,OS,LDAP注入(轻量目录访问协议),xpath(XPath即为XML路径语言,它是一种用来确定XML标准通用标记语言的子集)文档中某部分位置的语言),HQL注入等。
危害如下:
注入可以导致数据丢失或被破坏,缺乏可审计性或拒绝服务。注入漏洞有时甚至可导致完全接管主机。
如何防范:
1.使用安全的API,避免使用解释器
2.对输入的特殊的字符进行ESCAPE转义处理。例如:LIKE '%xxx%' ESCAPE ‘xxx’
使用ESCAPE关键字定义了转义字符“xxx”,告诉DBMS将搜索字符串“%xxx%”中的第二个百分符(%)作为实际值,而不是通配符
3.使用白名单来规范化的输入验证方法
 
TOP2-失效的身份认证和会话管理(破损认证)
与认证和会话管理相关的应用程序功能往往得不到正确实施,导致了攻击者可以破坏密码,密钥,会话令牌或实施漏洞冒充其他用户身份。
危害如下:
这些漏洞可能导致部分甚至全部账户遭受攻击,一旦攻击成功,攻击者就能执行合法的任何操作
如何防范:
1.使用内置的会话管理功能
2.通过认证的问候
3.使用单一的入口点
4.确保在一开始登录SSL保护的网页
 
TOP3-XSS(跨站脚本攻击)
跨站脚本是经常出现在web应用中的安全漏洞,其允许恶意web用户将代码植入到提供给其他用户使用的页面中,这些代码包括HTML代码和客户端脚本。黑客界公识是xss是新型的“缓冲区溢出攻击”
危害如下:
攻击者在受害者浏览器中执行脚本以劫持用户会话,插入恶意内容,重定向用户,使用恶意软件劫持用户浏览器等。
种类:
存储型,反射型,DOM型
如何防范:
1.验证输入
2.编码输出(用来确保输入的字符被视为数据,而不是作为html被浏览器所解析)
 
TOP4-不安全的对象直接引用
一个已经授权的用户通过更改访问时的一个参数,从而访问到原本其并没有得到授权的对象。
危害如下:
这种漏洞可以损坏参数所引用的所有数据
如何防范:
1.使用基于用户或会话的间接对象访问,这样可防止攻击者直接攻击为授权资源
2.访问检查:对任何来自不受信源所使用的所有对象进行访问控制检查
3.避免在url或网页中直接引用内部文件名或数据库关键字
4.验证用户输入和url请求,拒绝包含./ ../的请求
 
TOP5-跨站请求伪造(CSRF)
跨站请求伪造,攻击者通过用户的浏览器注入额外的网络请求,破坏网络会话的完整性。浏览器的安全策略是允许当前界面发送到任何地址,因此也意味着如果用户浏览了自己无法控制的资源时,攻击者可以通过控制页面的内容来控制浏览器,发送其精心构造的请求,这些精心构造的请求很难和合法的请求区分开。
危害如下:
攻击者可以让受害者用户修改任何允许修改的数据,执行任何用户允许的操作,例如修改密码,登录注销等。
如何防范:
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-应用已知漏洞的组件
    组件(例如库,框架和其他软件模块)以与应用程序相同的权限运行。如果利用易受攻击的组件,这种攻击可能会导致严重的数据丢失或服务器接管。使用具有已知漏洞的组件的应用程序和API可能会破坏应用程序防御并实现各种攻击和破坏。
如何防范:
1.识别正在使用的组件和版本,包括所有的依赖
2.更新组件或引用的库文件到最新
3.建立安全策略来管理组件的使用
 
TOP10-敏感信息暴露
由于代码编写不严谨或应用固有的功能,造成网站服务器信息被非法获取,属于一种低危漏洞。
TOP1-注入
[TOP1-zhùrù]
TOP1-injection
 

OWASP TOP 10(OWASP十大应用安全风险)的更多相关文章

  1. ASP.NET Core中的OWASP Top 10 十大风险-SQL注入

    不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/201 ...

  2. OWASP Top 10 – 2013, 最新十大安全隐患(ASP.NET解决方法)

    OWASP(开放Web软体安全项目- Open Web Application Security Project)是一个开放社群.非营利性组织,目前全球有130个分会近万名会员,其主要目标是研议协助解 ...

  3. ASP.NET Core中的OWASP Top 10 十大风险-失效的访问控制与Session管理

    不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/201 ...

  4. OWASP TOP 10 2017中文译文

    说明:owasp top 10其实有中文官方版本:本文是按着英文版进行翻译而成. 官方中文版:http://www.owasp.org.cn/owasp-project/OWASPTop102017v ...

  5. Web漏洞总结: OWASP Top 10

    本文原创,更多内容可以参考: Java 全栈知识体系.如需转载请说明原处. 开发安全 - OWASP Top 10 在学习安全需要总体了解安全趋势和常见的Web漏洞,首推了解OWASP,因为它代表着业 ...

  6. OWASP TOP 10 详解

      OWASP--开放式web应用程序安全项目 参考文献:袁鸣凯.OWASP Top 10十大风险 – 10个最重大的Web应用风险与攻防.2016-9-18. https://blog.csdn.n ...

  7. OWASP top 10

    OWASP Top 10 A1: InjectionSolution+Validate User Input+Never concatenate queries and date+Parameteri ...

  8. ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)

    不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/201 ...

  9. OWASP Top 10十大风险 – 10个最重大的Web应用风险与攻防

    先来看几个出现安全问题的例子 OWASP TOP10 开发为什么要知道OWASP TOP10 TOP1-注入 TOP1-注入的示例 TOP1-注入的防范 TOP1-使用ESAPI(https://gi ...

随机推荐

  1. javaScript基础及初始面向对象

    对象是什么?对象是包含相关属性和方法的集合体属性方法什么是面向对象面向对象仅仅是一个概念或者编程思想通过一种叫做原型的方式来实现面向对象编程 创建对象自定义对象内置对象 自定义对象2-1基于Objec ...

  2. java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook] with root cause

    一.问题描述 使用POI上传excel,本地可正常运行,开发服务器上报错. 二.异常信息如下: 2019-05-05 17:00:22,349 ERROR [http-nio-8080-exec-7] ...

  3. hive 的 beeline用法

    先开启服务端: nohup hive --service metastore & nohup  hive --service hiveserver2 & 进入beeline: beel ...

  4. 学习。NET三周心得

    目前为止 学习.NET已经快一个月了,有刚开始的不懂,到中途懵懂.再到现在的简懂 ,感觉自己迷了好多天,学习程序员跟学其他的程序还不同,其他的有固定格式,而.NET则固定很少 ,一直在用方法连接前后台 ...

  5. scala 延迟加载

  6. 二维bit模板

    #include<bits/stdc++.h> using namespace std; typedef long long ll; #define N 1100 const int mo ...

  7. 爬虫(五):PyQuery的使用

    一:简介 PyQuery库是jQuery的Python实现,可以用于解析HTML网页内容,是一个非常强大又灵活的网页解析库. -->官方文档地址 -->jQuery参考文档 二:初始化 初 ...

  8. @Autowired 与@Resource的区别详解

    spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@PostConstruct以及@PreDestroy. @Resour ...

  9. [报错解决] "MySQL server has gone away" 解决思路

    大概的4个思路 1.超时,超时的阀值有wait_timeout这个参数控制 2.连接被人为的kill 3.发送的SQL语句过大超过max_allowed_packet的大小. (操作的sql语句太长了 ...

  10. nestjs中typeorm进行事物操作

    https://typeorm.io/#/transactions 两种方法