是否允许空输入
参数是否是必须的
重复是否允许
数值范围
特定的值(枚举型)
特定的模式(正则表达式)(注:建议尽量采用白名单)
1.22)用户名和密码-2
检测接口程序连接登录时,是否需要输入相应的用户
是否设置密码最小长度(密码强度)
用户名和密码中是否可以有空格或回车?
是否允许密码和用户名一致
防恶意注册:可否用自动填表工具自动注册用户? (傲游等)
遗忘密码处理
有无缺省的超级用户?(admin等,关键字需屏蔽)
有无超级密码?
是否有校验码?
密码错误次数有无限制?
大小写敏感?
口令不允许以明码显示在输出设备上
强制修改的时间间隔限制(初始默认密码)
口令的唯一性限制(看需求是否需要)
口令过期失效后,是否可以不登陆而直接浏览某个页面
哪些页面或者文件需要登录后才能访问/下载
cookie中或隐藏变量中是否含有用户名、密码、userid等关键信息
1.3)直接输入需要权限的网页地址可以访问
避免研发只是简单的在客户端不显示权限高的功能项
举例Bug:
注销后,点浏览器上的后退,可以进行操作。
通过Http抓包的方式获取Http请求信息包经改装后重新发送
从权限低的页面可以退回到高的页面(如发送消息后,浏览器后退到信息填写页面,这就是错误的)
1.4)上传文件没有限制(此次不需要)
传文件还要有大小的限制。
上传木马病毒等(往往与权限一起验证)
上传文件最好要有格式的限制;
1.5)不安全的存储
在页面输入密码,页面应显示 “*****”;
中存的密码应经过加密;
地址栏中不可以看到刚才填写的密码;
右键查看源文件不能看见刚才输入的密码;
帐号列表:系统不应该允许用户浏览到网站所有的帐号,如果必须要一个用户列表,推荐使用某种形式的假名(屏幕名)来指向实际的帐号
1.6)操作时间的失效性
检测系统是否支持操作失效时间的配置,同时达到所配置的时间内没有对界面进行任何操作时,检测系统是否会将用户自动失效,需要重新登录系统。
支持操作失效时间的配置。
支持当用户在所配置的时间内没有对界面进行任何操作则该应用自动失效。
如,用户登陆后在一定时间内(例如15 分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
(二)借助工具或了解后手工来进行测试
不能把数据验证寄希望于客户端的验证
不安全的对象引用,防止XSS攻击
注入式漏洞(SQL注入)
传输中与存储时的密码没有加密 ,不安全的通信
目录遍历
2.1)不能把数据验证寄希望于客户端的验证
避免绕过客户端限制(如长度、特殊字符或脚本等),所以在服务器端验证与限制
客户端是不安全,重要的运算和算法不要在客户端运行。
Session与cookie
例:保存网页并对网页进行修改,使其绕过客户端的验证。
(如只能选择的下拉框,对输入数据有特殊要求的文本框)
还可以查看cookie中记录,伪造请求
测试中,可使用TamperIESetup来绕过客户端输入框的限制
2.21)不安全的对象引用,防止XSS等攻击
阻止带有语法含义的输入内容,防止Cross Site Scripting (XSS) Flaws 跨站点脚本攻击(XSS)
防止Cross-site request forgery(CSRF)跨站请求伪造
xss解释:不可信的内容被引入到动态页面中,没有识别这种情况并采取保护措施。攻击者可在网上提交可以完成攻击的脚本,普通用户点击了网页上这些攻击者提交的脚本,那么就会在用户客户机上执行,完成从截获帐户、更改用户设置、窃取和篡改 cookie 到虚假广告在内的种种攻击行为
测试方法:在输入框中输入下列字符,可直接输入脚本来看
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-67715-17.html
厚德载物
改变不了了