设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

常见六大Web安全攻防解析(4)

发布时间:2019-02-15 03:46 所属栏目:21 来源:佚名
导读:对于某些远古浏览器来说,并不能支持上面的这种方式,那我们只有通过 JS 的方式来防御点击劫持了。 head styleid=click-jack html{ display:none!important; } /style /head body script if(self==top){ varstyle=d

对于某些远古浏览器来说,并不能支持上面的这种方式,那我们只有通过 JS 的方式来防御点击劫持了。

  1. <head> 
  2.   <style id="click-jack"> 
  3.     html { 
  4.       display: none !important; 
  5.     } 
  6.   </style> 
  7. </head> 
  8. <body> 
  9.   <script> 
  10.     if (self == top) { 
  11.       var style = document.getElementById('click-jack') 
  12.       document.body.removeChild(style) 
  13.     } else { 
  14.       top.location = self.location 
  15.     } 
  16.   </script> 
  17. </body> 

以上代码的作用就是当通过 iframe 的方式加载页面时,攻击者的网页直接不显示所有内容了。

四、URL跳转漏洞

定义:借助未验证的URL跳转,将应用程序引导到不安全的第三方区域,,从而导致的安全问题。

1.URL跳转漏洞原理

黑客利用URL跳转漏洞来诱导安全意识低的用户点击,导致用户信息泄露或者资金的流失。其原理是黑客构建恶意链接(链接需要进行伪装,尽可能迷惑),发在QQ群或者是浏览量多的贴吧/论坛中。
安全意识低的用户点击后,经过服务器或者浏览器解析后,跳到恶意的网站中。

常见六大Web安全攻防解析
常见六大Web安全攻防解析

恶意链接需要进行伪装,经常的做法是熟悉的链接后面加上一个恶意的网址,这样才迷惑用户。

常见六大Web安全攻防解析
常见六大Web安全攻防解析

诸如伪装成像如下的网址,你是否能够识别出来是恶意网址呢?

http://gate.baidu.com/index?act=go&url=http://t.cn/RVTatrd

http://qt.qq.com/safecheck.html?flag=1&url=http://t.cn/RVTatrd

http://tieba.baidu.com/f/user/passport?jumpUrl=http://t.cn/RVTatrd

2.实现方式:

  • Header头跳转
  • Javascript跳转
  • META标签跳转

这里我们举个Header头跳转实现方式:

  1. <?php 
  2. $url=$_GET['jumpto']; 
  3. header("Location: $url"); 
  4. ?>  
  1. http://www.wooyun.org/login.php?jumpto=http://www.evil.com  

这里用户会认为www.wooyun.org都是可信的,但是点击上述链接将导致用户最终访问www.evil.com这个恶意网址。

3.如何防御

1)referer的限制

如果确定传递URL参数进入的来源,我们可以通过该方式实现安全限制,保证该URL的有效性,避免恶意用户自己生成跳转链接

2)加入有效性验证Token

我们保证所有生成的链接都是来自于我们可信域的,通过在生成的链接里加入用户不可控的Token对生成的链接进行校验,可以避免用户生成自己的恶意链接从而被利用,但是如果功能本身要求比较开放,可能导致有一定的限制。

五、SQL注入

SQL注入是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。

1.SQL注入的原理

我们先举一个万能钥匙的例子来说明其原理:

常见六大Web安全攻防解析

  1. <form action="/login" method="POST"> 
  2.     <p>Username: <input type="text" name="username" /></p> 
  3.     <p>Password: <input type="password" name="password" /></p> 
  4.     <p><input type="submit" value="登陆" /></p> 
  5. </form> 

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读