web常见的攻击和防御

  一:跨站脚本攻击 

  简称 : XSS(Cross Site Scripting)又叫跨站脚本攻击,最常见和基本的攻击WEB网站的方法。攻击者在网页上发布包含攻击性代码的数据,当浏览者看到此网页时,特定的脚本就会以浏览者用户的身份和权限来执行。比如获取用户的 Cookie、导航到恶意网站、携带木马等。借助安全圈里面非常有名的一句话:所有的输入都是有害的。大部分的 XSS 漏洞都是由于没有处理好用户的输入,导致恶意脚本在浏览器中执行。

  XSS攻击类型:1.反射型  用户在页面输入框中输入数据,通过 get 或者 post 方法向服务器端传递数据,输入的数据一般是放在 URL 的 query string 中,或者是 form 表单中,如果服务端没有对这些数据进行过滤、验证或者编码,直接将用户输入的数据呈现出来,就可能会造成反射型 XSS。反射型 XSS 是非常普遍的,其危害程度通常较小。

       2.持久型  通常是因为服务器端将用户输入的恶意脚本没有经过验证就存储在数据库中,并且通过调用数据库的方式,将数据呈现在浏览器上,当页面被用户打开的时候执行,每当用户打开浏览器,恶意脚本就会执行。持久型的 XSS 攻击相比非持久型的危害性更大,因为每当用户打开页面,恶意脚本都会执行。

 主要危害:1.盗取各类用户帐号 2.控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力 3.盗窃企业重要的具有商业价值的资料 4.非法转账 5.强制发送电子邮件 6.控制受害者机器向其它网站发起攻击

   防御: XSS 漏洞是由于对用户提交的数据没有经过严格的过滤处理造成的,所以防御的原则就是不相信用户输入的数据,对输入进行过滤,对输出进行编码。

  1.针对用户提交的数据进行有效的验证,只接受我们规定的长度或内容的提交,过滤掉其他的输入内容。

     2.对于敏感的cookie信息,使用HttpOnly,使document对象中找不到。

  3.对于用户输入的信息要进行转义。

 二:跨站请求伪造攻击

  简称 : CSRF(Cross-site request forgery) 是另一种常见的攻击。攻击者通过各种方法伪造一个请求,模仿用户提交表单的行为,从而达到修改用户的数据,或者执行特定任务的目的。为了假冒用户的身份,CSRF攻击常常和XSS攻击配合起来做,但也可以通过其它手段,例如诱使用户点击一个包含攻击的链接

  防御: 1.采用POST请求,增加攻击的难度.用户点击一个链接就可以发起GET类型的请求。而POST请求相对比较难,攻击者往往需要借助java才能实现。

      2.对请求进行认证,确保该请求确实是用户本人填写表单并提交的,而不是第三者伪造的.具体可以在会话中增加token,确保看到信息和提交信息的是同一个人。

三:重定向攻击

  一种常用的攻击手段是“钓鱼”。钓鱼攻击者,通常会发送给受害者一个合法链接,当链接被点击时,用户被导向一个似是而非的非法网站,从而达到骗取用户信任、窃取用户资料的目的。为防止这种行为,我们必须对所有的重定向操作进行审核,以避免重定向到一个危险的地方。

   防御 : 1.将合法的要重定向的url加到白名单中,非白名单上的域名重定向时拒之。

      2.重定向token,在合法的url上加上token,重定向时进行验证。

四:SQL注入

  所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。

  防御 : 1.表单过滤,验证表单提交的合法性,对一些特殊字符进行转义处理。

       2.数据库权限最小化

猜你喜欢

转载自www.cnblogs.com/-zmd-/p/11856113.html