WEB安全性测试用例

安全性测试用例编写

1.某些需登录后或者只有特殊用户才能访问的页面能否通过直接访问网址进入
2.对于带参数的网址,恶意修改其参数(若为数字,则输入字母或很大的数字或特殊字符)后打开网址是否出错;是否可以非法进入某些页面。
搜索页面等url中含有关键字的,输入Html代码或者Javascript看是否在页面中显示或执行;URL地址后面随便输入一些符号,并尽量是动态参数靠后
3.检查系统运行时有否记录完整的日志
4.是否设置密码最小长度(是)
5.用户名和密码是否可以有空格和回车(不可以)
6.是否允许用户名和密码一致(不允许)
7.防恶意注册:可含用自动填表工具自动注册用户?(不可以)
8.遗忘密码处理(无)
9.有无缺省的超级用户(无)
10.有无超级密码(有)
11.密码错误有无限制(有)
12.密码复杂性(如规定字母应混合大小写和特殊字符)
13.登录界面密码输入框看不见输入的密码,右键检查源代码是否能看到密码;后台存储是否加密;用户密码在网络传输过程中是否加密(不能)
14.认证和会话数据是否使用post方式而非get方式
15.检验是否存在SQL注入(select *FROM tb_user WHERE name=’‘or 1#‘AND password=’’)
16.退出系统后点击浏览器的后退按钮,能否重新回到系统中(否)
17.禁止同一用户账号在同一时间并发登录
18.同一用户在同一终端的多种浏览器上登录,验证登录功能的互斥性是否符合设计预期
19.同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性
20.密码是否具有有效期,密码有效期到期后,是否提示需要修改密码
21.密码输入框是否不支持复制和粘贴
22.连续多次登录失败情况下,系统是否会阻止后续的尝试以应对暴力破解
23.同个浏览器打开两个页面,一个页面权限失效后,另一个页面是否可操作成功。当页面没有CHECKCODE时,查看页面源代码,查是是否有token。如果页面完全是展示页面,是不会有token的。
24.Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
25.为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。
26.当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性。
27.服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。

28.文件上传
1)上传文件是否有格式限制,是否可以上传exe文件
2)上传文件是否有大小限制,上传太大是否导致异常错误;上传0 K的文件是否导致异常错误;上传不存在的文件是否导致异常错误。
3)通过修改拓展名的方式是否可以绕过格式限制;是否可以通过压包方式绕过格式限制
4)是否有上传空间的限制,是否可以超过空间所限制的大小,如将超过空间的大文件拆分上传是否会出现异常错误
5)上传过程中,中断。程序是否判断上传是否成功
6)上传文件大小大于本地剩余空间,是否报异常错误
7)对于文件名中带有中文字符、特殊字符的文件能否正常上传

29.文件下载
1)避免输入…\web.
2)修改命名后缀

30.用户注册
1)填写符合要求的数据注册: 用户名字和密码都为最大长度(边界值分析,取上点)
2)填写符合要求的数据注册 :用户名字和密码都为最小长度(边界值分析,取上点)
3)填写符合要求的数据注册:用户名字和密码都是非最大和最小长度的数据(边界值分析,取内点)
4)必填项分别为空注册
5)用户名长度大于要求注册1位(边界值分析,取离点)
6)用户名长度小于要求注册1位(边界值分析,取离点)
7)密码长度大于要求注册1位(边界值分析,取离点)
8)密码长度小于要求注册1位(边界值分析,取离点)
9)用户名是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了,如含有空格,#等,看需求是否允许吧~)
10)密码是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了)
11)两次输入密码不一致(如果注册时候要输入两次密码,那么这个是必须的)
12)重新注册存在的用户
13)改变存在的用户的用户名和密码的大小写,来注册。(有的需求是区分大小写,有的不区分)
14)看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号显示

31.修改密码
1)不输入旧密码,直接改密码
2)输入错误旧密码
3)不输入确认新密码
4)不输入新密码
5)新密码和确认新密码不一致
6)新密码中有空格
7)新密码为空
8)新密码为符合要求的最多字符
9)新密码为符合要求的最少字符
10)新密码为符合要求的非最多和最少字符
11)新密码为最多字符-1
12)新密码为最少字符+1
13)新密码为最多字符+1
14)新密码为最少字符-1
15)新密码为非允许字符(如有的密码要求必须是英文和数字组成,那么要试汉字和符号等)
16)看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号
17)看密码是否区分大小写,新密码中英文小写,确认密码中英文大写
18)新密码与旧密码一样能否修改成功
19)特殊字符:比如。 / ’ " \ 这些是否会造成系统崩溃
20)注入式bug:比如密码输入个or 1=1

32.输入框测试
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)关键字的长度分别为9、10、11个字符时的情况;
23)关键字是valid,但是没有匹配搜索结果的情况;
24)输入html的标签会出现哪些问题?输入 会出现什么问题呢?
  安全测试方面:
  给出一些特别的关键字,比如 or 1=1, 这样的关键字如果不被处理就直接用到数据库查询中去。
  
33.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来查看是否正确地被设置。

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

35.表单提交安全
(1) 表单中注入XSS脚本
测试方法:即在表单填写框中直接注入JS脚本 如在表单中输入XSS脚本,程序是不应该让脚本执行的。
(2) 表单中注入SQL 脚本

  • 0
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值