九大web漏洞及防范方法

SQL注入漏洞

简介

SQL注入攻击(Injection),广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序时,忽略了输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码,被植入后门程序等。

常见SQL注入的位置

  1. 表单提交(POST请求,GET请求)
  2. URL参数提交(GET请求参数)
  3. Cookie参数提交
  4. HTTP请求头部的一些可修改的值,比如Referer、User_Agent等
  5. 一些边缘输入点,比如mp3文件的一些文件信息

常见的防范方法

  1. 所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是 将用户输入的变量嵌入到SQL语句中。当前几乎所有的数据库系统都提供了参数化SQL语句执行接口,使用此接口可以非常有效地防止SQL注入攻击。
  2. 对进入数据库的特殊字符(’ “ < > & * ,)进行转义处理,或者编码转换。
  3. 确认每种数据的类型,比如数字型的数据必须为数字,数据库的存储字段必须对用为int型。
  4. 数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。
  5. 网站的每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致可能导致一些过滤模型被绕过。
  6. 严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度地减少注入对数据库的危害。
  7. 避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。
  8. 在网站发布之前提前做好注入测试,利用专业的SQL注入检测工具,及时修补这些SQL注入漏洞。

跨站脚本漏洞XSS

简介

跨站脚本攻击(Cross-site scripting)发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、窃取密码、传播恶意代码等攻击。
用到的主要技术是HTML和Javascript,也包括VBScripet和ActionScript。XSS攻击虽然对WEB服务器没有直接危害,但是它借助网站进行传播,会使得使用的用户受到攻击,导致网站用户的账号被盗取等,从而对网站间接产生严重危害。

常见XSS攻击类型

  1. 非持久型跨站:即反射型跨站脚本漏洞,是目前最普遍的跨站类型。跨站代码一般存在于链接中,请求这样的链接时,跨站代码经过服务端反射回来,这类跨站的代码不存储到服务端(如数据库中)
  2. 持久型跨站:危害最直接的跨站类型,跨站代码存储在服务端(如数据库中)。常见的就是用户在论坛发帖,如果论坛没有过滤用户输入的Javascript代码数据,就会导致其他浏览此贴的用户浏览器执行发帖人贴出的JS代码
  3. DOM跨站(DOM XSS):发生在客户端DOM(Document Object Model文档对象模型)中的跨站漏洞,很大原因是因为客户端脚本处理逻辑导致的安全问题。

常见的防范方法

  1. 假定所有的输入都是可疑的,必须对所有输入中的script, iframe等字样进行严格的检查。输入不仅仅是用户可以直接交互的输入接口,还应该包括HTTP请求中的Cookie中的变量,HTTP请求头部中的变量等。
  2. 不仅要验证数据的类型,还要验证他的格式、长度、范围和内容。
  3. 不仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。
  4. 对输入的数据也要检查,数据库的值有可能会在一个大网站的多出有输入,即使在输入做了编码等操作,在各处的输入点也要进行安全检查。
  5. 在发布应用程序之前测试所有已知的威胁。

弱口令漏洞

简介

弱口令(weak password)没有严格和准确的定义,通常认为容易被别人猜测到后者被破解工具破解的口令均为弱口令。

常用设置密码遵循规则

  1. 不使用空口令或系统缺省的口令,这些口令众所周知,为典型的弱口令。
  2. 口令长度不小于8个字符
  3. 口令不应该为连续的某个字符或者重复某些字符的组合
  4. 口令应该为(1)大写字母A-Z(2)小写字母a-z(3)数字0-9(4)特殊字符,这四类字符的组合。如果某类字符只包含一个,那此字符不应该为首字符或尾字符
  5. 口令中不应该包含与本人有关的信息,如本人、父母、配偶、子女的姓名、出生日期、纪念日期、登录名、E-Mail地址等
  6. 口令不应该为字典中的单词,或者用数字/符号代替某些字母的单词
  7. 口令应该容易记住且能快速输入,防止输入时被他人看到
  8. 至少90天更换一次密码,防止未被发现的入侵者继续使用该口令

HTTP报头追踪漏洞

简介

HTTP/1.1(RFC2616)规范定义了HTTP TRACE方法,主要是用于客户端通过向web服务器提交TRACE请求来进行测试或获得诊断信息。当web服务器启用TRACE时,提交的请求头会在服务器相应的内容(Body)中完整的返回,其中HTTP头很可能包括Session Token、Cookies或者其他认证信息。攻击者可以利用此漏洞来欺骗合法用户并得到他们的私人信息。该漏洞往往与其他方式配合来进行有效攻击,由于HTTP TRACE请求可以通过客户浏览器脚本发起(如XMLHttpRequest),并可以通过DOM接口来访问,因此很容易被攻击者利用。

常用防范方法

禁用HTTP TRACE方法

文件上传漏洞

简介

由于网页代码中的上传路径变量过滤不严造成的,如果文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,攻击者可通过Web访问的目录上传任意文件,包括网站后门文件(webshell),进而远程控制网站服务器。

常用防范方法

1、在开发网站和应用程序过程中,需严格限制和校验上传的文件,进制上传而已代码文件。
2、限制相关目录的执行权限,防范webshell攻击。

私有IP地址泄露漏洞

简介

IP地址是网络用户的重要标志,是攻击者进行攻击之前需要了解的。获取的方式很多,攻击者会依据不同的网络情况采取不同的方法。如:1、在局域网内使用ping指令,ping对方在网络中的名称二获得IP;2、在Internet上使用IP版的QQ直接显示。3、最有效的方法是截取并分析对方的网络数据包。攻击者可以找到并直接通过软件解析截获后的数据包的IP包头信息,再根据这些信息了解具体的IP。

常用防范方法

1、 针对截取网络数据包的方法,可以安装能够自动去掉发送数据包包头IP信息的一些软件。但缺点是,耗费资源严重,降低计算机性能,访问一些论坛或者网站会受到影响,不适合网吧用户使用等等。
2、 个人用户采用的最普及隐藏IP的方法就是使用代理,由于使用了代理服务器,“转址服务”会对发送出去的数据包有所修改,致使“数据包分析”的方法失效。如一些容易泄露用户IP的网络软件(QQ、MSN、IE)都支持使用代理的方式连接Internet,特别是QQ使用“ezProxy”等代理软件连接后,IP版本的QQ都无法显示该IP地址。虽然代理可以有效隐藏IP,但是攻击者也可以选择饶工代理找到真实IP地址。

未加密登录请求

简介

由于web配置不安全,登录请求把诸如用户名和密码等敏感字段未加密进行传输,攻击者可以窃听网络以获取这些敏感信息。

常见防范方法

建议进行例如SSH等加密后再传输

敏感信息泄露

简介

SQL注入、XSS、目录遍历、弱口令等均可以导致敏感信息泄露

常见防范方法

针对不同成因,防御方式不同

CRSF

简介

CRSF(Cross-site request forgery),跨站请求伪造,也被称为one click attack/ session riding,缩写为:CSRF/XSRF。大概意思是攻击者盗用用户的身份,以用户的名义发送恶意请求。包括发送邮件,发信息,盗取账号,购买商品,虚拟货币转账,造成个人隐私泄露和财产安全问题。攻击的思想简单来说就是,用户登录并信任网站A,生成了本地Cookie,在不登出网站A的情况下,又访问了危险网站B,网站B发送请求要求访问第三方站点A,网站A不知道这个请求是用户发出的还是网站B发出的,由于浏览器会自动带上用户C的Cookie,因此网站A会根据用户的权限处理请求,这样网站B就达到了模拟用户操作的目的。

常用防范方法

服务端进行CSRF防御,在客户端页面增加伪随机数
1、 Cookie Hashing,所有表单都包含同一个伪随机值,在表单中增加Hash值,以认证这确实是用户发送的请求,然后在服务端进行Hash值验证。
2、 验证码,每一的用户提交都需要用户在表单上填写验证码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值