您好,欢迎访问三七文档
Cookie提供了一种在Web应用程序中存储用户特定信息的方法,例如存储用户的上次访问时间等信息。假如不进行cookie存储一个网站的用户行为,那么可能会造成以下问题:用户进行购买几件商品转到结算页面时,系统怎样知道用户之前订了哪几件商品。因为,cookie其中一个作用就是记录用户操作系统的日志,而系统对cookie不单单是存储,还有读取,也就是说系统和用户之前是一个交互的过程,这称为有状态。但是Cookie在带来这些编程的方便性的同时,也带来了安全上的问题。Cookie的安全性问题与从客户端获取数据的安全性问题是类似的,可以把Cookie看成是另外一种形式的用户输入,因此很容易被黑客们非法利用这些数据。由于Cookie保存在客户端,因为在客户端可以直接看到Cookie中存储的数据,而且可以在浏览器向服务器端发送Cookie之前更改Cookie的数据。因此,对Cookie的测试,尤其是安全性方面的测试非常重要,是Web应用系统测试中的重要方面。·如何判断正在测试的Web系统使用了cookie?在进行Cookie测试之前,首先要判断被测试的Web应用系统是否使用了Cookie。当然可以找出web系统的设计文档、功能规格说明书来看个究竟,或者直接问开发人员。除此之外,还有更加直接的办法:(1)找到电脑中存储cookie的目录。需要注意的是不同的浏览器把Cookie数据存储在不同的目录,IE浏览器把Cookie数据存储在类似下面的目录:C:\DocumentsandSettings\user\LocalSettings\TemporaryInternetFiles(2)删除所有cookie。在IE中,cookie与缓存的临时文件存储在一起。可使用IE中的删除Cookies文件功能来删除所有Cookie,也可直接找到存储Cookie文件的目录进行删除。打开IE浏览器,选择菜单“工具|Internet选项”(或者按快捷方式“Ctrl+Shift+Delete”),如图1所示。图1Internet选项单击“删除Cookies”按钮,出现如图2所示的对话框。单击“确定”按钮,把所有Cookie文件删除掉。图2删除Cookies(3)设置IE,当使用到Cookie时自动提示。如果想确切地知道测试的Web系统在什么地方使用了Cookie,可以对IE浏览器进行一些设置,让IE浏览器在使用到Cookie时自动弹出提示窗口,这样测试时就能知道在什么时候、什么功能操作使用到了Cookie。IE的设置方法是:打开IE菜单“工具|Internet选项”,切换到“隐私”页面,如图3所示。图3设置IE单击“高级”按钮,出现如图4所示的界面。图4高级隐私策略设置选择“覆盖自动cookie处理”,在“第一方Cookie”处选择“提示”,在“第三方Cookie”处也选择“提示”,然后单击“确定”按钮。这样,当Web页面使用到Cookie时,IE浏览器会自动提示如图5所示的界面。图5隐私警报说明:单击其中的“详细信息”,可以看到如图6所示的Cookie详细信息。包括Cookie的名称、来源、路径、数据、截止期限等信息。图6查看详细的Cookie信息·Cookie测试方法-屏蔽Cookie这是最简单的Cookie测试方法,检查当Cookie被屏蔽时Web系统会出现什么问题。首先关闭所有浏览器实例,删除测试机器上的所有cookie。设置IE屏蔽Cookie,可通过把IE的“隐私”设置为如图7所示的“阻止所有Cookie”。图7阻止所有Cookie然后运行Web系统的所有主要功能,很多时候会出现功能不能正常运行的情况。如果用户必须激活Cookie使用设置才能正常运行web系统的话,则需要检查Web服务器是否能正确识别出客户端的Cookie设置情况,当用户屏蔽了Cookie时,Web服务器应该发送一个提示页面,告诉用户激活Cookie设置才能使用系统(测试用例)。·Cookie测试方法-有选择性地拒绝Cookie这种测试方法的目的是验证这种情况:如果某些Cookie被接受,某些Cookie被拒绝,Web系统会发生什么事情?首先删除测试机器上的所有Cookie,然后设置IE的Cookie选项,当Web系统试图设置一个Cookie时弹出提示。然后运行Web系统的所有主要功能。在弹出的Cookie提示中,接受某些Cookie,拒绝某些Cookie。检查Web系统的工作情况,看Web服务器是否能检测出某些Cookie被拒绝了,是否出现正确的提示信息。有可能Web系统会因为这样而出现错误、崩溃、数据错乱,或其他不正常的行为。例如在测试过程中,对前面的用于测试浏览器是否接受Cookie的“测试Cookie”都予以接受,但是对后面的设置Cookie则予以拒绝,那么如果后续的代码要依赖所设置的Cookie时,则会出错。例如下面的代码中,读取Cookies部分的代码如果没有判断Cookie是否存在,则会出现异常。·Cookie测试方法-篡改Cookie如果某些存储下来的Cookie被篡改了,或者被删除了,Web系统会出现什么问题吗?如果Web系统不能检测到Cookie数据被篡改了,则很可能出现功能异常,或者数据错乱等问题。优秀的设计则会检测到Cookie数据的篡改,及时更新替换Cookie文件。假设有如下ASP.NET页面,根据Cookie判断访问者的到访顺序,并且根据到访顺序做出相应的业务处理,如果是第8位访问者,则送出奖品,那么就可能导致别有用心者通过篡改Cookie数据来获得奖品。protectedvoidPage_Load(objectsender,EventArgse){intcounter;if(Request.Cookies[counter]==null){counter=0;}else{//读取Cookie数据counter=int.Parse(Request.Cookies[counter].Value);}counter++;//如果是第8位访问者if(counter==8){this.Label2.Text=您是第8位访问者!;}//设置CookieResponse.Cookies[counter].Value=counter.ToString();Response.Cookies[counter].Expires=DateTime.Now.AddDays(1);}可以通过修改存储下来的Cookie数据来达到不公平竞争的目的,查找到这个ASP.NET页面使用的Cookie文件并用文本编辑工具打开,可看到类似如下信息:counter3127.0.0.1/153612913665282990815758905302429907956*把counter后面的值改为7(注意修改前要关闭浏览器)。然后再次访问上面的ASP.NET.NET页面,则counter值变成了8,页面提示“您是第8位访问者!”。说明:测试过程中应该查找是否有业务逻辑是依赖Cookie存储值而进行的,如果有,则尝试修改Cookie的值,看是否导致功能不正常,或者业务逻辑的混乱。另外,也可以尝试有选择性地删除Cookie。在运行Web系统一段时间后,把其中某些Cookie文件删除掉,然后继续使用Web系统,看会出现什么情况,是否能恢复、是否有数据丢失或错乱。·Cookie测试方法-Cookie加密测试检查存储的Cookie文件内容,看是否有用户名、密码等敏感信息存储,并且未被加密处理。某些类型的数据即使是加密了也绝对不能存储在Cookie文件中的,例如:信用卡号。测试的方法可以手工地打开所有Cookie文件来查看,也可以利用一些Cookie编辑工具来查看,例如,如图8所示的CookieEditor。图8CookieEditor界面利用CookieEditor,可以列出所有Cookie文件,还可以在Cookie文件中搜索内容,如图9所示。图9搜索Cookie说明:在“Lookfor”的输入框中输入需要查找的内容,例如username、password等敏感信息的关键字,单击“Go”按钮进行查找。·Cookie安全内容检查Cookie安全内容检查包括前面讲的存储内容的检查,还包括以下方面:(1)Cookie过期日期设置的合理性:检查是否把Cookie的过期日期设置得过长。(2)HttpOnly属性的设置:把Cookie的HttpOnly属性设置为True有助于缓解跨站点脚本威胁,防止Cookie被窃取。(3)Secure属性的设置:把Cookie的Secure属性设置为True,在传输Cookie时使用SSL连接,能保护数据在传输过程中不被篡改。对于这些设置,可以利用CookieEditor来查看是否正确地被设置,如图10所示。图10查看Cookie的设置说明:可在“ExpirationDateandTime”中查看Cookie的过期日期设置是否合理,查“HttpOnly”和“Secure”是否勾选上,勾选上表示设置为True。在“CookieValue”中可查看是否存在敏感信息,数据是否经过加密
本文标题:cookie测试
链接地址:https://www.777doc.com/doc-2906843 .html