zoukankan      html  css  js  c++  java
  • 软件测试中日常测试中融入的安全测试

    软件测试中日常测试中融入的安全测试

    1. 用户权限测试

        (1) 用户权限控制

            1) 用户权限控制主要是对一些有权限控制的功能进行验证

            2) 用户A才能进行的操作,B是否能够进行操作(可通过窜session,将在下面介绍)

            3)只能有A条件的用户才能查看的页面,是否B能够查看(可直接敲URL访问)

        (2) 页面权限控制

            1) 必须有登陆权限的页面,是否能够在不登陆情况下进行访问

            2)必须经过A——B——C的页面,是否能够直接由A——C?



    2. URL安全测试

        (1)适用范围: URL中含有参数,也就是通过GET方式传递的HTTP请求

        (2)什么叫GET方式?

            HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST。

            GET方式在客户端通过URL提交数据,数据在URL中可以看到,例如在日常中订购服务:

            http://pay.daily.taobao.net/mysub/subdeal/order_sub_deal.htm?servId=2

           POST方式,数据放置在HTML HEADER内提交,数据在URL中看不到

           GET只能传输比较少的数据,安全性较低,POST传输数据较多,安全性也比GET高

        (3)测试关注点:

           1) URL 参数检查:

           A: 对URL中参数信息检查是否正确

           如:URL中的订单号、金额允许显示出来的话,需要验证其是否正确

           B: 对于一些重要的参数信息,不应该在URL中显示出来

           如:用户登陆时登录名、密码是否被显示出来了 ,

           2) URL参数值篡改

           修改URL中的数据,看程序是否能识别:

           如:对于以下URL,修改其中planId,看是程序是否可以识别:

           http://pay.daily.taobao.net/mysub/plan/subplan/confirmSubPlanInfo.htm?planId=878

           又如:对于URL中包含金额参数的,修改金额看是否能够提交成功(可能导致用户把2元金额改成1元金额       能提交),还有修改订单号等重要信息看是否会报错

           3) URL中参数修改进行XSS注入:

           什么是XSS?

           XSS的全称是Cross Site Script(跨站点脚本)

           XSS的原理很简单,即进行脚本注入,URL执行时即把此脚本进行了执行,一般都是JavaScript脚本,如<script>alter(“abc”)<script>在URL中进行XSS注入,也就是把URL中的参数改成JS脚本。


            4) URL参数中进行SQL 注入

           什么是SQL注入?

           SQL注入全称是SQL Injection ,当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击,如查询、插入数据时。

           测试方法: URL中写入SQL注入语句,看是否被执行,如:’or 1=1;shutdown

    一般情况下要进行SQL注入攻击,需要对数据库类型、表名、判断逻辑、查询语句等比较清楚才能够写出有效的SQL注入语句。



    3. 表单提交安全测试

    适用范围:有表单提交的地方、有HTTP请求的地方(包括GET、POST请求)

    测试关注点:

    1) 表单中注入XSS脚本

    什么是XSS?这已在上一节中说明。URL中需要检测XSS注入,表单中更需要验证

    测试方法:即在表单填写框中直接注入JS脚本

    如在表单中输入XSS脚本,程序是不应该让脚本执行的

    2) 表单中注入SQL 脚本

    与URL中参数进行SQL注入类似,就是在表单中写入SQL注入脚本提交看是否会有问题



    4. Session测试

    (1) Session是客户端与服务器端建立的会话,总是放在服务器上的,服务器会为每次会话建立一个sessionId,每个客户会跟一个sessionID对应。

    并不是关闭浏览器就结束了本次会话,通常是用户执行“退出”操作或者会话超时时才会结束。

    (2) 测试关注点:

    1) Session互窜

    Session互窜即是用户A的操作被用户B执行了。

    验证Session互窜,其原理还是基于权限控制,如某笔订单只能是A进行操作,或者只能是A才能看到的页面,但是B的session窜进来却能够获得A的订单详情等。

    Session互窜方法:

    多TAB浏览器,在两个TAB页中都保留的是用户A的session记录,然后在其中一个TAB页执行退出操作,登陆用户B, 此时两个TAB页都是B的session,然后在另一个A的页面执行操作,查看是否能成功。 预期结果:有权限控制的操作,B不能执行A页面的操作,应该报错,没有权限控制的操作,B执行了A页面 操作后,数据记录是B的而不是A的。

    2) Session超时

    基于Session原理,需要验证系统session是否有超时机制,还需要验证session超时后功能是否还能继续走下去。

    测试方法:

    1、打开一个页面,等着10分钟session超时时间到了,然后对页面进行操作,查看效果。

    2、多TAB浏览器,在两个TAB页中都保留的是用户A的session记录,然后在其中一个TAB页执行退出操作,马上在另外一个页面进行要验证的操作,查看是能继续到下一步还是到登录页面。

  • 相关阅读:
    【原创】开源Math.NET基础数学类库使用(01)综合介绍
    【原创】开源.NET排列组合组件KwCombinatorics使用(三)——笛卡尔积组合
    【原创】开源.NET排列组合组件KwCombinatorics使用(二)——排列生成
    apply,call,bind的区别
    javascript替换手机号中间4位
    css常见的概念
    关于URL编码/javascript/js url 编码
    jquery判断div滚动条到底部
    javascript中的array对象属性及方法
    localStorage和sessionStorage区别
  • 原文地址:https://www.cnblogs.com/cxx1/p/7417161.html
Copyright © 2011-2022 走看看