WEB安全性测试需要注意哪些点?

发表于:2020-11-06 09:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:璇子的蓝色城堡    来源:博客园

  一、 用户注册
  只从用户名和密码角度写了几个要考虑的测试点,如果需求中明确规定了安全问题,Email,出生日期,地址,性别等等一系列的格式和字符要求,那就都要写用例测了~
  以等价类划分和边界值法来分析
  1.填写符合要求的数据注册: 用户名字和密码都为最大长度(边界值分析,取上点)
  2.填写符合要求的数据注册 :用户名字和密码都为最小长度(边界值分析,取上点)
  3.填写符合要求的数据注册:用户名字和密码都是非最大和最小长度的数据(边界值分析,取内点)
  4.必填项分别为空注册
  5.用户名长度大于要求注册1位(边界值分析,取离点)
  6.用户名长度小于要求注册1位(边界值分析,取离点)
  7.密码长度大于要求注册1位(边界值分析,取离点)
  8.密码长度小于要求注册1位(边界值分析,取离点)
  9.用户名是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了,如含有空格,#等,看需求是否允许吧~)
  10.密码是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了)
  11.两次输入密码不一致(如果注册时候要输入两次密码,那么这个是必须的)
  12.重新注册存在的用户
  13.改变存在的用户的用户名和密码的大小写,来注册。(有的需求是区分大小写,有的不区分)
  14.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号显示
  备注:边界值的上点、内点和离点大家应该都知道吧,呵呵,这里我就不细说了~~
  二、 修改密码
  当然具体情况具体分析哈~不能一概而论~
  实际测试中可能只用到其中几条而已,比如银行卡密码的修改,就不用考虑英文和非法字符,更不用考虑那些TAP之类的快捷键。而有的需要根据需求具体分析了,比如连续出错多少次出现的提示,和一些软件修改密码要求一定时间内有一定的修改次数限制等等。
  1.不输入旧密码,直接改密码
  2.输入错误旧密码
  3.不输入确认新密码
  4.不输入新密码
  5.新密码和确认新密码不一致
  6.新密码中有空格
  7.新密码为空
  8.新密码为符合要求的最多字符
  9.新密码为符合要求的最少字符
  10.新密码为符合要求的非最多和最少字符
  11.新密码为最多字符-1
  12.新密码为最少字符+1
  13.新密码为最多字符+1
  14.新密码为最少字符-1
  15.新密码为非允许字符(如有的密码要求必须是英文和数字组成,那么要试汉字和符号等)
  16.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号
  17.看密码是否区分大小写,新密码中英文小写,确认密码中英文大写
  18.新密码与旧密码一样能否修改成功
  另外一些其他的想法如下:
  1.要测试所有规约中约定可以输入的特殊字符,字母,和数字,要求都可以正常输入、显示正常和添加成功
  2.关注规约中的各种限制,比如长度,大否支持大小写。
  3.考虑各种特殊情况,比如添加同名用户,系统是否正确校验给出提示信息,管理员帐户是否可以删除,因为有些系统管理员拥有最大权限,一旦删除管理员帐户,就不能在前台添加,这给最终用户会带来很多麻烦。比较特殊的是,当用户名中包括了特殊字符,那么对这类用户名的添加同名,修改,删除,系统是否能够正确实现,我就遇到了一个系统,添加同名用户时,如果以前的用户名没有特殊字符,系统可以给出提示信息,如果以前的用户名包含特殊字符,就不校验在插入数据库的时候报错。后来查到原因了,原来是在java中拼SQL语句的时候,因为有"_",所以就调用了一个方法在“_”,前面加了一个转义字符,后来发现不该调用这个方法。所以去掉就好了。所以对待输入框中的特殊字符要多关注。
  4.数值上的长度 之类的,包括出错信息是否合理
  5.特殊字符:比如。 / ' " \ </html> 这些是否会造成系统崩溃
  6.注入式bug:比如密码输入个or 1=1
  7.登录后是否会用明文传递参数
  8.访问控制(不知道这个算不算):登录后保存里面的链接,关了浏览器直接复制链接看能不能访问。
  输入框测试
  1.验证输入与输出的是否信息一致;
  2.输入框之前的标题是否正确;
  3.对特殊字符的处理,尤其是输入信息徐需要发送到数据库的。特殊字符包括:'(单引号)、"(双引号)、[](中括号)、()(小括号)、{}(大括号)、;(分号)、<>(大于小于号)……
  4.对输入框输入超过限制的字符的处理,一般非特殊的没有作出限制的在255byte左右;
  5.输入框本身的大小、长度;
  6.不同内码的字符的输入;
  7.对空格、TAB字符的处理机制;
  8.字符本身显示的颜色;
  9.密码输入窗口转换成星号或其它符号;
  10.密码输入框对其中的信息进行加密,防止采用破解星号的方法破解;
  11.按下ctrl和alt键对输入框的影响;
  12.对于新增、修改、注册时用的输入框,有限制的,应该输入时作出提示,指出不允许的或者标出允许的;
  13.对于有约束条件要求的输入框应当在条件满足时输入框的状态发生相应的改变,比如选了湖南就应该列出湖南下面的市,或者选了某些条件之后,一些输入框会关闭或转为只读状态;
  14.输入类型;根据前面的栏位标题判断该输入框应该输入哪些内容算是合理的。例如,是否允许输入数字或字母,不允许输入其他字符等。
  15.输入长度;数据库字段有长度定义,当输入过长时,提交数据是否会出错。
  16.输入状态;当处于某种状态下,输入框是否处于可写或非可写状态。例如,系统自动给予的编号等栏位作为唯一标识,当再次处于编辑状态下,输入框栏位应处于不可写状态,如果可写对其编辑的话,可能会造成数据重复引起冲突等。
  17.如果是会进行数据库操作的输入框,还可以考虑输入SQL中的一些特殊符号如单引号等,有时会有意想不到的错误出现
  18.输入类型
  输入长度
  是否允许复制粘贴
  为空的情况
  空格的考虑
  半角全角测试
  对于密码输入框要考虑显示的内容是*  输入错误时的提示信息及提示信息是否准确
  19.可以先了解你要测试的输入框在软件系统的某个功能中所扮演的角色,然后了解其具体的输入条件,在将输入条件按照有效等价类,无效等价类,边界值等方法进行测试用例的设计。
  20.关键字有大小写混合的情况;
  21.关键字中含有一个或多个空格的情况,包括前空格,中间空格(多个关键字),和后空格;
  22.关键字中是否支持通配符的情况(视功能而定);
  23.关键字的长度分别为9、10、11个字符时的情况;
  24.关键字是valid,但是没有匹配搜索结果的情况;
  25.输入html的标签会出现哪些问题?输入<html> 会出现什么问题呢?(这条是我自己发现的,在网上也没找到类似的东东,呵呵,大家凑合着看吧)
  安全测试方面:
  给出一些特别的关键字,比如 or 1=1, 这样的关键字如果不被处理就直接用到数据库查询中去,后果可想而知。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

相关阅读

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号