5、非正常访问:主要用于需要验证用户身份以及权限的页面,复制该页面的url地址,关闭该页面以后,查看是否可以直接进入该复制好的地址。
6、输入框管理:对Grid、Label、Tree view类的输入框未作验证,输入的内容会按照html语法解析出来。
7、缓冲区溢出:没有加密关键数据,在页面输入密码,页面显示的是 *****, 右键,查看源文件就可以看见刚才输入的密码。
8、不安全的存储:包括两个方面。帐号列表:系统不应该允许用户浏览到网站所有的帐号,如果必须要一个用户列表,推荐使用某种形式的假名(屏幕名)来指向实际的帐号;浏览器缓存:认证和会话数据不应该作为GET的一部分来发送,应该使用POST。
9、拒绝服务:攻击者可以从一个主机产生足够多的流量来耗尽狠多应用程序,最终使程序陷入瘫痪。需要做负载均衡来对付。
最后是针对上篇文章中提到的七种常见攻击设计用例进行测试改良,具体方法可以参见以下资料,这里就不详细列出:
中文:http://www.51testing.com/?uid-49689-action-viewspace-itemid-74842
英文:http://www.djangobook.com/en/2.0/chapter20/
这里再提一下之前性能测试中发生的一些错误,现在看来是并发测试对系统安全的影响。最典型的情况是注册(现在改用邮箱验证之后应该不存在此类问题了)和购物,因为是并发,所以它们的提交和处理时间几乎是一样的,于是在判断是否数据库中已经存在该用户名或者是该用户是否有足够虚拟币的时候,因为是同时判断,所以数据库中的记录就不具有绝对的参考价值了,这也就是为什么在并发时会出现同一用户名多次注册以及购物能购到虚拟币为负。这只是一两个例子,仔细检查应该能发现更多的弱点。
总的来说,手动安全测试是很耗费时间和精力的,对测试人员的要求也很高,但也是必不可少的。下一篇文章将介绍如何用工具来进行安全测试,以弥补手动测试的不足。
版权声明:本文出自winthnight的51Testing软件测试博客:http://www.51testing.com/?271416
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。
推荐阅读: