最全常见Web安全漏洞总结及推荐解决方案 您所在的位置:网站首页 web常见漏洞原理有哪些 最全常见Web安全漏洞总结及推荐解决方案

最全常见Web安全漏洞总结及推荐解决方案

#最全常见Web安全漏洞总结及推荐解决方案| 来源: 网络整理| 查看: 265

常见Web安全漏洞总结及推荐解决方案 1.SQL注入:2.不安全的会话管理漏洞:3.任意文件上传:4.任意文件读取:5.任意代码执行:6.越权访问:7.敏感信息泄露:8.XSS跨站脚本攻击:9.CSRF跨站请求伪造:10.用户名/口令暴力爆破:11.弱口令漏洞:12.撞库攻击:13.注册模块设计缺陷:14.短信接口设计缺陷:15.URL重定向漏洞:16.拒绝服务漏洞:17.不足的日志记录和监控:18.业务逻辑漏洞:19.网络安全通信协议:*预警级别安全规范:*1.管理后台泄漏漏洞2.错误详情泄漏漏洞3.资源控制

1.SQL注入:

SQL注入(SQL Injection),是一个常见的发生于应用程序和数据库之间的web安全漏洞,由于在开发过程中的设计不当导致程序中忽略了检查,没有有效的过滤用户的输入,是攻击者可以向服务器提交不正常的访问数据(即恶意的SQL命令代码),程序在接收后错误的将攻击者的输入作为代码语句的一部分执行,导致原始的查询逻辑被改变,额外的执行了攻击者静态构造的恶意代码,从而绕过验证机制和权限检查,达到取得隐藏数据或覆盖关键的参值,甚至执行数据库主机操作系统命令的目的。

例子: 拼接SQL GET url: XXXX/list?_t=1595992542839&column=(case%0awhen(1=1)%0athen%0asleep(3)%0aelse%0a0%0aend)&order=desc&field=&pageNo=1&pageSize=10

应对方案: 1、严格限制web应用的数据库的操作权限,给用户提供仅能满足需求的最低权限,从而最大限度的减少注入攻击对数据库的危害。 2、严格限制变量的类型。 3、对进入数据的特殊字符(‘ “ \ & *)进行转义处理(或编码转换) 4、不要直接拼接SQL语句,所有的查询语句建议使用数据库提供的参数化查询接口,使用参数化的语句而不是将用户输入的变量嵌入SQL语句中。 5、在应用发布之前建议使用专业的SQL注入检测工具进行检测,及时修补被检测出的SQL注入漏洞。 6、避免网站打印SQL错误信息,比如类型错误、字段不匹配等,可对异常信息做封装,给出友好提示,不直接打印堆栈信息到前端。

2.不安全的会话管理漏洞:

token值信息直接在GET请求的URL上,造成token值的直接暴露,容易被日志记录、搜索引擎等缓存,影响客户会话安全。

应对方案: 禁止token以GET方式传递,可从header中获取。

3.任意文件上传:

任意文件上传(Unrestricted File Upload),是一种常见的web安全漏洞,由于web应用程序在实现文件上传功能是对上传的文件缺少必要的检查,使得攻击者可上传任意文件。利用该漏洞,攻击者可以直接上传webshell(webShell 就是以asp\php\jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称之为一种网页后门)、病毒、恶意脚本等各种危险文件,可能导致服务器权限被直接获取,从而危及整个系统的安全运行。

应对方案: 1、对用户上传的文件后缀采用白名单进行限制,且重命名文件名。 2、限定文件上传目录,且该目录不允许解析动态脚本文件。

4.任意文件读取:

任意文件读取漏洞(Unrestricted File Upload),是一种常见的web安全漏洞,因web程序提供的文件查看下载、附件下载等功能存在安全缺陷,导致通过修改该文件路径就能够查看和下载任意文件,这些文件包括:源代码文件、系统文件(/etc/passwd , C:/boot.ini等)、配置文件(config.php , /WEB-INF/web.xml , web.config等),造成网站敏感信息泄露,严重危害网站安全。

应对方案: 1、服务端过滤特殊字符。(…./、 ….\、 ….\) 2、判断用户输入的参数的格式是否合法。 3、指定文件类型白名单(如:jpg\gif\png\rar\zip\pdf\doc\xls\ppt等),禁止用户读取、下载白名单以外的文件。 4、指定下载路径,禁止用户读取、下载指定目录以外的文件。

5.任意代码执行:

任意代码执行漏洞(Unrestrcted Code Execution),是一种常见的web安全漏洞,由于web程序没有针对执行函数做过滤,当web程序应用在调用一些能将字符串转化成命令的函数(如PHP中的eval(),system(),exec())时,没有考虑做一些安全限制,导致可以通过构造特殊代码,执行操作系统命令,致使攻击者获取到网站服务器权限。

应对方案: 1、如果因使用的框架或中间件造成远程代码执行漏洞,需及时升级框架和中间件。 2、针对代码中可执行的特殊函数入口进行过滤,尝试对所有提交的可能执行命令的语句进行严格的检查或者对外部输入进行控制,系统命令执行函数,不允许传递外部参数。 3、所有的过滤步骤要在服务器进行,不仅要验证数据的类型,还要验证期格式、长度、范围和内容。

6.越权访问:

越权访问(Broken Access Control , BAC),是一种常见的web安全漏洞,这类漏洞是指应用在检查授权(Authorization)时存在纰漏,使得攻击者可以利用一些方式绕过权限检查,访问或者操作到原本无权访问的界面。在实际的代码安全审查中,这类漏洞往往很难通过工具进行自动化检测,因此在实际应用中危害很大。

应对方案: 1、将用户身份标识存在session中并验证,不能把用户身份标识以参数形式置于HTTP请求中,应该放在session中,并且仅通过session验证用户身份。 2、禁止从Cookie参数中去判断用户所属用户组,应该通过读取session会话来判断用户所属用户组。 3、文件下载时,禁止采用可被猜测的连续ID为参数进行文件下载,下载文件时也应判断当前用户是否有权限下载目标文件。 4、非普通用户操作页面严格做好权限管理,增删改查操作需要验证当前用户权限。

7.敏感信息泄露:

在最近几年,这是最常见的、最具影响力的攻击。这个领域最常见的漏洞是不对敏感信息进行加密。在数据加密过程中,常见的问题是不安全的密钥生成和管理以及使用弱加密算法、弱协议和弱密码。特别是使用弱的哈希算法来保护密码。 攻击者不是直接攻击密码,而是在传输过程中或从客户端(例如:浏览器)窃取密钥、发起中间人攻击,或从服务器端窃取明文数据。

应对方案: 1.应对敏感信息进行强加密再传输的操作,禁止一切敏感信息的明文传输,如:密码明文传输等。 2.对于配置文件的明文存储,可以使用 jasypt 进行密钥加密存储,增强安全性。

8.XSS跨站脚本攻击:

跨站脚本漏洞(Cross-site scripting , xss),是一种常见的web安全漏洞,由于web应用未对用户提交的数据做充分的检查过滤,允许用户在提交的数据中掺入HTML代码(最主要的是”>”,”可以暴力破解帐号密码。

应对方案:

将管理后台的服务绑定到内网ip上,禁止开放在外网。如果该管理后台必须提供给外网访问,则未登录页面不要显示过多内容,防止敏感信息泄漏,登录帐号需经过认证,且密码设置规则尽量复杂,增加验证码,以防止暴力破解。 2.错误详情泄漏漏洞

页面含有CGI处理错误的代码级别的详细信息,例如sql语句执行错误原因,php的错误行数等。 检测方法:修改参数为非法参数,看页面返回的错误信息是否泄漏了过于详细的代码级别的信息。

应对方案: 将错误信息对用户透明化,在CGI处理错误后可以返回友好的提示语以及返回码。但是不可以提示用户出错的代码级别的详细原因。

3.资源控制

应用系统未对单个账户的多重并发会话进行限制,会出现同个账户,多个操作人同时在操作。

应对方案: 可根据业务系统的需求定制会话的限制数量,类似:同个账户在不同地方登录时提示账户已登录,提供踢出操作,同时提示被踢出用户。

备注:此文是本人结合全网各博客和自己的见解进行总结的,若有问题大家及时提出。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有