常建输入框的测试

身份证:

  1. 校验身份证号规则的有效性(包括地址码、生日期码、顺序码和校验码)

  2. 校验15位身份证号和18位身份证号都是可用的

  3. 校验末位是X的情况

  4. 校验不足15位、16-17位和大于18位的情况

  5. 如果是必输项,校验不输入的时候会不会有正确的提示

  6. 如果不是必输项,则要校验不输入的时候流程能否正常进行

  7. 校验输入非数字的情况,是否会有正确提示信息(包括大小写字母、汉字、特殊字符和标点符号)

  8. 校验输入全角的数字的时候,系统是否会识别(这个得根据需求确定是否可以使用全角的数字)

邮箱输入框
  1:不输入任何字符
  2:输入中文空格
  3:输入英文空格
  4:字符串中没有@和点  例如:huiyanni163com
  5:字符串中有@没有点  例如:huiyanni@163com
  6:字符串中没有@有点
  7:字符串中特殊字符   例如:[email protected]
  8:@和点都存在
  9:第一个字符串味@    例如:@163.com
  10:@和点之间没有字符串  例如:[email protected]
  11:字符串之后以为是点  例如:huiyanni@163com.
  12:字符串中多于两个@符号  例如:huiyanni@[email protected]
  13:字符串中长度超过50位
  14:字符串中有汉字
  15:输入@前面有分隔符的情况  例如:[email protected]
  16:输入@后面有多个分隔符

手机号码输入框
  1:输入英文空格
  2:输入中文空格
  3:输入特殊字符
  4:输入超长11位字符
  5:输入英文字符
  6:输入中文字符

验证码

  1:不输入任何字符
  2:空格输入
  3:输入空格+正确效验码,空格出现在开头、中间、结尾均需要测试
  4:输入4位其他非数字内容
  5:输入特殊字符
  6:输入前3位或后3位验证码正确数字
  7:输入4位正确校验码+其他数字

邮政编码输入框
  1:输入英文空格,其他必填项填写合理
  2:为必填项时,不输入任何字符
  3:输入中文空格
  4:输入特殊字符
  5:输入超长6位字符
  6:输入中、英文内容
  7:输入空格+数字,空格出现在开头、中间、结尾均需测试
  8:输入1个数字
  9:输入16位数字
  10:输入超长17位数字

<一>文本输入框的合法性检测
1.输入正确的文字、数字、符号,例如中国ABC123等字符,可以提交成功;
2.输入特殊字符检测,特殊字符(例如%、&、?、英文状态下的单引号等)不引起系统出错,则通过检测;
3.空格的检测:
a.空格在行首的检测(例如 中国),自动过滤行首的空格;
b.空格在中间的检测(例如中国 abc),空格保留;
c.空格在行尾的检测(例如中国 ),自动过滤行尾的空格。
<二>数字输入框的合法性检测
正整数的检测:
1.输入正确的正整数,例如:123等数字,可以提交成功;
2.输入带小数的数值,例如:12.22等数字,系统出现相应的错误提示信息;
3.输入负数或者零,例如:-12、0等数字,系统出现相应的错误提示信息;
4.输入字符和特殊符号,例如:abc@#,系统出现相应的错误提示信息。
带小数的输入框检测:
1.对小数后的位数进行检测,例如:规定为2为小数,检测3位或3为以上小数是否控制。
?    数字边界值的输入框检测:(例如边界值的大小为 N=100)
1.在输入框内输入规定的长度N,输入>0或<100,例如:0,0.5,1,1.01,1.11,10 ,99,99.9,可以提交成功;
2.在输入框内输入超出规定长度N, 输入<0或>100,例如:-1,101,101.1,系统出现相应的错误提示信息。
?    文本边界值的输入框检测:(例如边界值的大小为 N=100)
1.输入的字符或汉字,到规定的长度n,例如:输入100个字符或输入50个字符,可以提交成功;
2.输入99个字符或49个汉字,可以提交成功;
3.输入101个字符或51个汉字,系统出现相应的错误提示信息。
日期的检测
1.输入开始日期小于结束时间,可以提交成功;
2.如何开始日期大于结束日期,系统出现相应的错误提示信息;
3.输入开始日期等于结束日期,可以提交成功(具体根据系统要求定义);
4.结束日期大于等于当前日期,可以提交成功;
5.闰年的2月份。
<四>必填项的检测
1.必填项中没有输入任何数据,系统应该出现相应的提示信息;
2.必填项内容加注红色'*'。
<五>界面元素的检测
1.界面元素(具体内容)和需求规定一致;(需客户提供明确的界面元素表)
2.界面布局是否合理、是否美观、是否存在错别字;
3.如果界面数据多,是否存在翻页或左右滚动条;
4.界面列表数据是否对某关键字排序。

关于上传:

1.上传文件是否有格式限制,是否可以上传exe文件;

2.上传文件是否有大小限制,上传太大的文件是否导致异常错误,上传0K的文件是否会导致异常错误,上传并不存在的文件是否会导致异常错误;

3.通过修改扩展名的方式是否可以绕过格式限制,是否可以通过压包方式绕过格式限制;

4.是否有上传空间的限制,是否可以超过空间所限制的大小,如将超过空间的大文件拆分上传是否会出现异常错误。

5.上传文件大小大于本地剩余空间大小,是否会出现异常错误。

6.关于上传是否成功的判断。上传过程中,中断。程序是否判断上传是否成功。

7.对于文件名中带有中文字符,特殊字符等的文件上传。

上传漏洞拿shell:

8.直接上传asp.asa.jsp.cer.php.aspx.htr.cdx….之类的马,拿到shell.
9.就是在上传时在后缀后面加空格或者加几点,也许也会有惊奇的发现。例:*.asp ,*.asp..。
10.利用双重扩展名上传例如:*.jpg.asa格式(也可以配上第二点一起利用)。
11.gif文件头欺骗
12.同名重复上传也很OK。:

下载:

  1. 避免输入:\..\web.
  2. 修改命名后缀。

 用户注册

只从用户名和密码角度写了几个要考虑的测试点,如果需求中明确规定了安全问题,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 特殊字符:比如。 / ' " \ 这些是否会造成系统崩溃

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的标签会出现哪些问题?输入会出现什么问题呢?(这条是我自己发现的,在网上也没找到类似的东东,呵呵,大家凑合着看吧)

用户体验相关

我登录失败的时候没有任何提示,这没什么,反正提示也只是说失败…

进去后发现颜色变更很强烈刺得我一眨眼,不过多看几次就习惯了。

点击某个链接的时候出现错误页面,刷新后就好了,难道是随机错误?

保存文字的时候没有成功提示,不过能成功保存就算了。

浏览记录的时候竟然出现错误页面,原来我没有选记录就浏览了,我自己操作不规范嘛。

删除记录的时候发现选错了,想取消的时候却提示删除成功,都没有确认提示,只能下次看仔细点了。

查询时字母键被茶杯压住了多输了点字符,竟然出现错误页面,下次把东西整理好。

无聊随便点点几个链接,竟然没有反应,既然不用,那就不要做出来嘛。

看看自己上传的图片效果如何,这个怎么不显示?多试几次发现名字不包含中文就好了,下次注意下。

改改字体字号颜色美化环境嘛,怎么格式那里不显示正确的字体字号呢,将就用吧。

这里的记录条数怎么这么多啊?原来是没有删除按钮,看来下次不能随便加了。

这个结束时间怎么在开始时间前啊?原来没有进行控制,下面的人执行时……还是自己改过来吧。

上次我在这里看见的图片呢?刷新后就出来了,怎么和我玩捉迷藏呢?

多输了点内容,保存时候提示太多了,点确定后发现被清空了,我一个小时的工作啊!

这张图片真不错,但是按钮呢,按钮呢?按钮被挤掉了我怎么编辑啊。

听说F5是刷新点一下看看。怎么好像变成了登录界面?

刚学了怎么用TAB键,确实很方便。TAB一下。跑哪去了,怎么一片空白啊???

玩游戏的人点击速度那么快,我也来试试。怎么一双击就出错了?

我找错别字是很厉害的,这不就发现“同意”写成了“统一”。

这里提示只能输入1-100,我偏要输入9999……保存看看,怎么系统不能用了?

这里一点击就出现IE错误,硬是不弹出我需要的窗口。

这个查询按钮怎么灰掉了?这么多记录让我一页一页翻过去找啊。

上传第二个附件的时候怎么把第一个挤掉了啊,会挤掉也要提示一下嘛。

一个页面上打开的记录太多了,变体都用…省略了,要是鼠标放上去浮动显示完整标题就方便多了。

这几条记录有依存关系,删了一条其他就没了,提示都没有,早知道我就用编辑了……

这条记录怎么好像是昨天的,我记得今天更新了啊?原来编辑后的记录没有传到引用的地方。

最最奇怪的是昨天上传时候正常的图片今天就不能显示了。我记得没有只能显示一天的功能啊???

这里怎么没有任何按钮呢,看手册才知道竟然要用右键进行操作,怎么突然冒出个异类啊???

这里怎么能增加两条相同的记录呢?不控制一下天知道手下那些愣头青会做出什么来。

这里的菜单一层一层又一层,足足有五层,把我头都绕晕了……我记得哪里说过最好不要超过三层的。

这个界面看起来怎么这么别扭啊,是字体太大了,是按钮太小了,还是功能太多了,……

怎么不是管理员登录进来也能管理啊,那我这个管理员的身份不是多此一举吗?

删除的时候提示Error,幸亏我英语水平好,可是你换成中文不行吗?

这条记录不是删除了吗,怎么还能引用啊,到时候出错了怎么办,难道还要我记住删了那些记录?

经过精心编辑,我发了一条通知,怎么用普通用户查看的时候是默认的字体字号啊???

这几个页面上的当前日期怎么是固定不变的啊,这都是去年的日期了,不会是开发时候的吧。

 

一、工具扫描
目前web安全扫描器针对 XSS、SQL injection 、OPEN redirect 、PHP File Include漏洞的检测技术已经比较成熟。
商业软件web安全扫描器:有IBM Rational Appscan、WebInspect、Acunetix WVS
免费的扫描器:W3af 、Skipfish 等等
可以考虑购买商业扫描软件,也可以使用免费的,各有各的好处。
首先可以对网站进行大规模的扫描操作,工具扫描确认没有漏洞或者漏洞已经修复后,再进行以下手工检测。

二、手工检测
1. 目录遍历
目录遍历产生的原因是:程序中没有过滤用户输入的“../”和“./”之类的目录跳转符, 导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。
测试方法:在URL中输入一定数量的“../”和“./”,验证系统是否ESCAPE掉了这些目录跳转符。

2. 登陆
(1) 是否正确登陆
(2) 密码复杂度
(3) ...

3. 用户权限
(1) 用户权限控制
1) 用户权限控制主要是对一些有权限控制的功能进行验证 
2) 用户A才能进行的操作,B是否能够进行操作(可通过窜session,将在下面介绍) 3)只能有A条件的用户才能查看的页面,是否B能够查看(可直接敲URL访问)
(2) 页面权限控制
1) 必须有登陆权限的页面,是否能够在不登陆情况下进行访问 
2)必须经过A——B——C的页面,是否能够直接由A——C?
(3) ...

4. Cookie安全
(1) 屏蔽或删除所有Cookie
(2) 有选择性地屏蔽Cookie
(3) 篡改Cookie
(4) Cookie加密测试
(5) Cookie安全内容检查
1) Cookie过期日期设置的合理性:检查是否把Cookie的过期日期设置得过长。
2) HttpOnly属性的设置:把Cookie的HttpOnly属性设置为True有助于缓解跨站点脚本威胁,防止Cookie被窃取。?
3) Secure属性的设置:把Cookie的Secure属性设置为True,在传输Cookie时使用SSL连接,能保护数据在传输过程中不被篡改。 对于这些设置,可以利用Cookie?Editor来查看是否正确地被设置。
(6) ...


5. 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页执行退出操作,马上在另外一个页面进行要验证的操作,查看是能继续到下一步还是到登录页面。
3) ...

6. URL安全
(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脚本,如

你可能感兴趣的:(常建输入框的测试)