本章节主要讲解“软件测试的会话管理测试”,会话管理是开发工程师对HTTP协议无状态会话的一种管理过程。当用户在一个应用程序的页与页之间进行跳转时,还需要维护用户信息,因为HTTP 是一种无状态协议,即Web 服务器将某页的每次访问都当作相互无关的访问来处理,服务不会保留前一次访问的任何信息,即使访问就发生在当前访问的几秒钟之前。
会话管理测试的主要内容如下:
身份信息识别方式测试。
Cookie 存储方式测试。
用户注销、退出测试。
注销后会话信息是否清除测试。
会话超时测试。
(1)身份信息识别方式测试。
身份信息识别方式测试主要是测试系统通过什么方式来识别用户身份信息。在Web 系统中一般有多种不同角色的用户,不同的用户拥有的权限也不同,用户的身份识别变得非常重要。
测试时需要注意在提交GET 或POST 请求时,不能有身份信息相关的数据或信息存在,否则系统存在漏洞。
测试步骤如下:
步骤1:登录Web 系统。
步骤2:使用工具(WebScarab)对HTTP 的GET 和POST 请求进行拦截。
步骤3:进入登录请求,并分析拦截工具截获的请求报文件。
步骤4:截获的请求中不应该包括与用户身份信息相关的数据,如果发现存在用户身份信息相关的数据,可以将用户身份信息进行修改,再次提交时,如果服务器端是以修改后的身份进行操作,则说明系统存在漏洞。
用户的身份信息不能通过客户端来提交,而是通过服务器的会话管理来保存。
(2)Cookie 存储方式测试。
某些Web 应用将SessionID 放到了URL 中进行传输,这样攻击者能够诱使被攻击者访问特定的资源(如图片)。在被攻击者查看资源时获取该SessionID(在HTTP 协议的Referer 标题头中携带了来源地址),从而导致身份盗用。
测试时应该测试不同的业务应用,观察URL 的内容,确保URL 中不出现SessionID 信息(可能是SID、JSessionID 等形式)。
(3)用户注销、退出测试。
用户注销、退出测试主要测试用户登录后,系统的所有页面中是否存在正确的“退出”或“注销”按钮或链接。
(4)注销后会话信息是否清除测试。
确保注销后会话信息是否被清除,是否能继续访问注销之前(也即登录之后)才能访问的页面。
测试步骤如下:
步骤1:使用工具(WebScarab)对HTTP 的GET 和POST 请求进行拦截。启动WebScarab 工具前,打开浏览器中的“Internet 选项”对话框,在“连接”选项卡中单击“局域网设置”按钮,弹出如图12-17 所示对话框。将其中地址设置为localhost,端口设置为8008。
步骤2:登录Web 系统。
步骤3:在Web 系统中进行一些操作(如添加用户信息),这样WebScarab 工具就会将GET和POST 请求拦截并记录下来。
步骤4:注销或退出Web 系统。
步骤5:在WebScarab 工具中选中步骤3 的URL,重新发送请求。
步骤6:查看返回的结果。
返回的结果应该为HTTP/1.1 302 Moved Temporarily,即不能够访问只有登录才能访问的页面。
图12-17 “局域网(LAN)设置”对话框
(5)会话超时测试。
会话超时是指当浏览器窗口闲置超时时,是否需要重新登录的机制。测试时使用一个正确的账号进行登录,成功登录之后,将浏览器闲置一段时间(可以查看xml 文件中的session-timeout 参数值,该值表示会话的超时时间)。当闲置超过这个时间值时,系统提示需要重新登录。
本章节关于“软件测试的会话管理测试”的内容就学习到这里,大家觉得文章有用的话记得每天来这里和小编一起学习涨薪技能哦。