web安全漏洞种类

(参考知道创宇)php

SQL注入:web

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

 

应对方案:数据库

一、严格限制web应用的数据库的操做权限,给用户提供仅能知足需求的最低权限,从而最大限度的减小注入攻击对数据库的危害。后端

二、既爱尼察输入的数据是否具备所要求的数据格式,严格限制变量的类型。浏览器

三、对进入数据的特殊字符(‘ “ \ <> & *)进行转义处理(或编码转换)安全

四、不要直接拼接SQL语句,全部的查询语句建议使用数据库提供的参数化查询接口,使用参数化的语句而不是将用户输入的变量嵌入SQL语句中。服务器

五、在应用发布以前建议使用专业的SQL注入检测工具进行检测,及时修补被检测出的SQL注入漏洞。cookie

六、避免网站打印SQL错误信息,好比类型错误、字段不匹配等。网络

 

XSS跨站脚本攻击:

跨站脚本漏洞(Cross-site scripting , xss),是一种常见的web安全漏洞,因为web应用未对用户提交的数据作充分的检查过滤,容许用户在提交的数据中掺入HTML代码(最主要的是”>”,”<”),并将未经转义的恶意代码输出到第三方用户的浏览器解释执行,从而致使XSS漏洞。攻击成功后,攻击者能够获得更高的权限、私密网页内容、会话和cookie等内容。

 

应对方案:

一、针对请求参数以及用户可控数据进行防护,对输出进行编码处理。

二、在服务端对每个输入进行合法性验证,只容许输入常见符号,字母以及数字。

三、Cookie添加HttpOnly标识。

 

CSRF跨站请求伪造:

跨站请求伪造(Cross-site request forgery , CSRF),是一种常见的web安全漏洞,因为在web请求中重要操做的全部参数可被猜想到,攻击者可经过一些技术手段欺骗用户的浏览器去访问一个用户曾经认证过的网站,遂使攻击者可冒用用户的身份,进行恶意操做。

 

应对方案:

一、在表单中添加一个随机的数字或字母验证码,经过强制用户和应用进行交互,来有效地遏制CSRF攻击。

二、若是检查发现是非正常页面提交的请求(根据Referer进行判断),则极有多是CSRF攻击。

三、在请求的参数里增长一个随机的token参数,且不可被猜想。

四、敏感的操做应该使用POST,而不是GET,以form表单的形式提交,能够避免token泄露。

 

越权访问:

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

 

应对方案:

一、将用户身份标识存在session中并验证,不能吧用户身份标识以参数形式置于HTTP请求中,应该放在session中,而且仅经过session验证用户身份。

二、禁止从Cookie参数中去判断用户所属用户组,应该经过读取session会话来判断用户所属用户组。

三、文件下载时,禁止采用可被猜想的连续ID为参数进行文件下载,下载文件时也应判断当前用户是否有权限下载目标文件。

四、非普通用户操做页面严格作好权限管理,增删改查操做须要验证当前用户权限。

 

任意文件上传:

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

 

应对方案:

一、对用户上传的文件后缀采用白名单进行限制,且重命名文件名。

二、限定文件上传目录,且该目录不容许解析动态脚本文件。

三、更新web服务器版本并进行正确配置,防止解析漏洞。

 

任意文件读取:

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

 

应对方案:

一、服务端过滤特殊字符。(./、 ….\、 ….\\

二、判断用户输入的参数的格式是否合法。

三、指定文件类型白名单(如:jpg\gif\png\rar\zip\pdf\doc\xls\ppt等),禁止用户读取、下载白名单之外的文件。

四、指定下载路径,禁止用户读取、下载指定目录之外的文件。

 

任意文件包含:

任意文件包含(Unrestricted File Inclusion),是一种常见的web安全漏洞,web程序在引入文件时,因为传入的文件名没有通过合理的校验或者检验被绕过,从而操做了预想以外的文件,致使意外的敏感信息泄露,甚至恶意的代码注入,使攻击者获取到网站服务器权限。

当被包含的文件在服务器本地时,造成本地文件包含漏洞;被包含的文件在第三方服务器时,造成远程文件包含漏洞。

 

应对方案:

一、关闭危险的文件打开函数。

二、过滤特殊字符,如:.’(点),‘/’(斜杠),‘\’(反斜杠)。

三、对被包含的文件名进行检测,只容许包含特定文件。

 

任意代码执行:

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

 

应对方案:

一、若是因使用的框架或中间件形成远程代码执行漏洞,需及时升级框架和中间件。

二、针对代码中可执行的特殊函数入口进行过滤,尝试对全部提交的可能执行命令的语句进行严格的检查或者对外部输入进行控制,系统命令执行函数,不容许传递外部参数。

三、全部的过滤步骤要在服务器进行,不只要验证数据的类型,还要验证期格式、长度、范围和内容。

 

撞库攻击:

撞库攻击(Information Leakage Thinking Library Collision),是一种常见的针对web应用的攻击方式,为了方便记忆不少用户在不一样网站使用的同一帐号和密码,黑客经过收集网络已泄露的拖库信息,特别是注册用户和密码信息,生成对应的字典表,尝试批量自动登录其它网站验证后,获得一系列能够登陆的真实帐户。

 

应对方案:

一、加强验证码机制,为防止验证码被破解,能够适当增长验证码生成的强度,例如中文图形验证码。

二、自动识别异常IP,对于异常IP,整理一个很是严格的恶意IP库,甚至禁止这些IP访问网站。

三、用户帐户被撞开后的保护,对用户行为进行分析,如判断用户的登陆IP是否在经常使用地区,若是不是则直接锁定帐号,让用户经过收集、邮箱等手段来解锁。

 

用户名/口令爆破:

用户名/口令爆破(Brute-force attack),是一种常见的web安全漏洞,因为用户登陆模块缺乏必要的防御机制,使用网站的注册或登陆接口,攻击者经过系统地组合全部可能性(例如登陆时用到的帐户名、密码等),并以穷举法尝试全部可能性破解用户的帐户名、密码等敏感信息。

 

应对方案:

一、加强验证码机制,为防止验证码被破解,能够适当怎加验证码生成的强度,例如中文图形验证码。

二、用户名或密码输入错误均提示“用户名或密码错误”,防止黑客获取到注册用户的信息。

三、限制用户登陆失败次数。

四、限制必定时间内IP登陆失败次数。

 

注册模块设计缺陷:

注册模块设计缺陷(Registration module design flaws),是一种常见的web安全漏洞,网站注册模块的设计缺陷将致使一下几点安全漏洞:

一、任意用户密码找回。

二、暴力枚举网站已注册用户。

三、暴力破解用户密码。

四、万能密码登陆。

五、SQL注入。

以上安全问题会带来用户密码被盗、我的信息泄露、网站数据库泄露、网站被入侵等风险。

 

应对方案:

一、若是使用邮件验证的方式找回密码,重置密码令牌须要设置为不可猜想,且加密令牌时使用经过加密的方式,而不是本身构造;设置重置密码会话过时时间,在重置密码时不要从请求中获取须要重置的用户名。

二、若是使用短信验证的方式找回密码,验证短信最少应为6位,且短信过时时间不能超过10分钟,在发送短信页面添加通过混淆过的图形验证码,并在后端设置单位时间内的短信发送频率。

三、限制单位时间内认证错误次数。

四、在用户注册页面、登陆界面,添加可靠的机器人识别功能,例如图形验证码或短信验证码。

 

短信接口设计缺陷:

短信接口设计缺陷(SMS interface design flaws),是一种常见的web安全漏洞,短信接口一般用于注册验证、登陆验证及其余敏感操做的验证上,但因为设计不当,一般会致使如下安全问题:

一、短期内发送大量的手机短信。

二、短信验证码太短易被猜想。

三、短信验证码在发送屡次时,多个验证码同时有效。

四、短信验证码在HTTP相应包中返回客户端。

 

应对方案:

一、在发送短信接口设置机器人识别机制,例如通过混淆的图形验证码,在验证经过后方可发送手机短信。

二、用来验证的验证码短信最少应为6位,过时时间内只能有一个验证码有效,且有效时间不该超过10分钟。

三、不要把短信验证码返回到客户端。

 

URL重定向漏洞:

URL重定向漏洞(URL redirection vulnerability),是一种常见的web安全漏洞,因为网站URL重定向功能设计不当,没有验证跳转的目标URL是否合法,用户可经过此漏洞转到任意网站,这会致使可经过该网站跳转到存在木马、病毒的网站或者钓鱼网站。

 

应对方案:

一、不该从用户请求或填写的内容中获取跳转的目标URL,应在后端设定跳转URL

二、对须要跳转的目标URL进行验证,若是跳转的URL不是所容许的,则禁止跳转。

三、进行URL时提示用户并显示跳转的目标URL地址并询问是否跳转。

 

拒绝服务漏洞:

拒绝服务攻击(denial-of-service attack , DOS),亦称“洪水攻击”,是一种网络攻击手段,其目的在于使目标电脑的网络或系统资源耗尽,使服务暂时中断或中止,致使其正经常使用户没法访问。

拒绝服务的攻击也可能致使与目标计算机同一网络中的其它计算机被攻击。互联网和局域网之间的带宽会被攻击并致使大量消耗,不但影响目标计算机,同时也影响局域网中的其余计算机。若是攻击的规模较大,整个地区的网络链接均可能会受到影响。

 

应对方案:

拒绝服务攻击的防护方式一般为入侵检测,流量过滤和多重验证,意在堵塞网络带宽的流量将被过滤,而正常的流量可正常经过。

一、网络设备:防火墙能够设置规则,例如容许或拒绝特定通信协议、端口或IP地址。当攻击从少数不正常的IP地址发出时,能够简单的使用拒绝规则阻止一切从攻击源IP发出的通讯。

二、黑洞引导/流量清洗:黑洞引导指将全部受攻击计算机的通讯所有发送至一个“黑洞”(空接口或不存在的计算机地址)或者有足够能力处理洪流的网络运营商,以免网络受到较大影响。当流量被送到DDoS防御清洗中心时,经过采用抗DDoS软件处理,将正常流量和恶意流量区分开。这样一来可保障站点可以正常运做,处理真实用户访问网站带来的合法流量。

三、web服务器:升级web服务器,避免出现拒绝服务漏洞,如HTTP.sysMS15-034)。

 

 ……………………

相关文章
相关标签/搜索