Cookie安全测试
- 格式:pdf
- 大小:281.59 KB
- 文档页数:8
安全测试的考虑点及测试⽅法原⽂地址:软件安全性测试主要包括程序、数据库安全性测试。
根据系统安全指标不同测试策略也不同。
⽤户认证安全的测试要考虑问题:1. 明确区分系统中不同⽤户权限2. 系统中会不会出现⽤户冲突3. 系统会不会因⽤户的权限的改变造成混乱4. ⽤户登陆密码是否是可见、可复制5. 是否可以通过绝对途径登陆系统(拷贝⽤户登陆后的链接直接进⼊系统)6. ⽤户推出系统后是否删除了所有鉴权标记,是否可以使⽤后退键⽽不通过输⼊⼝令进⼊系统系统⽹络安全的测试要考虑问题:1. 测试采取的防护措施是否正确装配好,有关系统的补丁是否打上2. 模拟⾮授权攻击,看防护系统是否坚固3. 采⽤成熟的⽹络漏洞检查⼯具检查系统相关漏洞(即⽤最专业的⿊客攻击⼯具攻击试⼀下,现在最常⽤的是 NBSI系列和 IPhacker IP )4. 采⽤各种⽊马检查⼯具检查系统⽊马情况5. 采⽤各种防外挂⼯具检查系统各组程序的客外挂漏洞数据库安全考虑问题:1. 系统数据是否机密(⽐如对银⾏系统,这⼀点就特别重要,⼀般的⽹站就没有太⾼要求)2. 系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这个系统的功能实现有了障碍)3. 系统数据可管理性4. 系统数据的独⽴性5. 系统数据可备份和恢复能⼒(数据备份是否完整,可否恢复,恢复是否可以完整)浏览器安全同源策略:不同源的“document”或脚本,不能读取或者设置当前的“document”同源定义:host(域名,或者IP),port(端⼝号),protocol(协议)三者⼀致才属于同源。
要注意的是,同源策略只是⼀种策略,⽽⾮实现。
这个策略被⽤于⼀些特定的点来保护web的安全。
<script>,<img>,<iframe>,<link>等标签都可以跨域加载资源,不受同源策略的限制。
XMLHttpRequest,DOM,cookie受到同源策略的限制。
关于安全测试⾯试的30道基础概念题⽬与参考答案集锦看看这些⾯试题⽬,⽬的是了解安全测试的基本概念。
每⼀道题⽬都可以展开到⼀定的深度和⼴度。
这⾥仅仅是⼀个抛砖引⽟,点到为⽌。
Question 1. 什么是安全测试(Security Testing)?在所有类型的软件测试中,安全测试可以被认为是最重要的。
其主要⽬的是在任何软件(Web或基于⽹络)的应⽤程序中找到漏洞,并保护其数据免受可能的攻击或⼊侵者。
由于许多应⽤程序包含机密数据,需要被保护泄漏。
软件测试需要定期在这样的应⽤程序上进⾏,以识别威胁并⽴即采取⾏动。
Question 2. 什么是漏洞(Vulnerability)?漏洞可以被定义为任何系统的弱点(Vulnerability),⼊侵者或bug可以通过该系统进⾏攻击。
如果系统没有严格执⾏安全性测试,那么漏洞的机会就会增加。
有时补丁或修复程序需要防⽌系统出现漏洞。
Question 3. 什么是⼊侵检测(Intrusion Detection)?⼊侵检测(Intrusion Detection)是帮助确定和处理可能的攻击的系统。
⼊侵检测包括从多个系统和源收集信息,分析信息,找出可能的攻击⽅式。
⼊侵检测检查如下:1.可能的攻击2.任何异常活动3.审核系统数据4.不同采集数据的分析等。
Question 4. 什么是SQL注⼊(SQL injection)?SQL注⼊是⿊客获取关键数据的常⽤攻击技术之⼀。
⿊客检查系统中的任何循环漏洞,通过这些漏洞,他们可以通过SQL查询传递安全检查并返回关键数据。
这就是所谓的SQL注⼊。
它可以允许⿊客窃取关键数据,甚⾄使系统崩溃。
SQL注⼊⾮常关键,需要避免。
定期的安全测试可以防⽌此类攻击。
SQL数据库安全性需要正确定义,输⼊框和特殊字符应该正确处理。
Question 5. 列举安全测试的关注点?1. Authentication2. Authorization3. Confidentiality4. Availability5. Integrity6. Non-repudiation7. ResilienceQuestion 6. 什么是XSS?XSS或跨站点脚本是⿊客⽤来攻击web应⽤程序的漏洞类型。
目录1 安全测试 (3)2 测试范围 (3)3 测试流程 (4)4 漏洞级别说明 (4)5 测试详情 (5)5.1 任意文件上传漏洞 (5)5.1.1 风险类别 (5)5.1.2 漏洞分析 (5)5.1.3漏洞危害等级 55.1.4 风险分析 (5)5.1.5 解决方案 (5)5.2 管理后台暴露 (6)5.2.1 风险类别 (6)5.2.2 漏洞分析 (6)5.2.3 漏洞危害等级 (6)5.2.4 风险分析 (6)5.2.5 解决方案 (6)5.3 跨站点脚本编制攻击 (6)5.3.1 风险类别 (6)5.3.2 漏洞分析 (6)5.3.3 漏洞危害等级 (6)5.3.4 风险分析 (6)5.3.5 解决方案 (7)5.4 E-Mail地址 (7)5.4.1 风险类别 (7)5.4.2 漏洞分析 (7)5.4.3 漏洞危害等级 (7)5.4.4 风险分析 (7)5.4.5 解决方案 (7)5.5 电话号码 (7)5.5.1 风险类别 (7)5.5.2 漏洞分析 (8)5.5.3 漏洞危害等级 (8)5.5.4 风险分析 (8)5.5.5 解决方案 (8)5.6 任意文件下载漏洞 (8)5.6.1 风险类别 (8)5.6.2 漏洞分析 (8)5.6.3 漏洞危害等级 (8)5.6.4 风险分析 (8)5.6.5 解决方案 (8)1安全测试什么是安全测试?安全测试就是要提供证据表明,在面对敌意和恶意输入的时候,应用仍然能够充分地满足需求。
安全是一种必须存在的非功能性需求。
2测试范围等级描述详细说明风险等级A1 注入攻击注入攻击漏洞,例如SQL,OS以及LDAP注入,会在攻击者向应用服务端发送以分隔符作为命令或者查询的一部分时就会发生。
攻击者的有害数据中分隔符造成的陷阱,会执行攻击构造的未预知的命令或者访问未授权数据A2 失效的身份认证和会话管理失效的身份认证和会话管理,与身份认证和会话管理相关的应用功能经常实现的不正确,允许攻击者可以构造密码、密钥、或者会话令牌或者利用实现缺陷,假旨其他用户的身份。
安全测试学习总结安全测试学习总结 ⼀、概述 程序员在开发过程中会有意或⽆意埋下⼀些,发现⼀些安全性漏洞,寻求有效的解决⽅法是测试⼯程师义不容辞的责任。
安全测试主要涉及以下内容: 1、认证与授权 · 授权:在⽹站中不同的⾓⾊有不同的权限。
· 认证:⼀些⽹页访问需要输⼊密码进⾏登录认证。
在认证与授权中要尽可能避免出现漏洞,否则将被不法分⼦有意地进⾏利⽤。
2、Session与Cookie · Session在⽹络应⽤中称为"会话控制",是保存在服务器端的数据或者⽂件; · cookie是保存在客户端电脑上的⽂件; cookie很容易通过某种⼿段获取到我们的权限以及⼀些隐私信息;session ID是唯⼀的标记,⼀旦别⼈通过cookie欺骗等⼿段获取了session ID,可以将其作为协议包发给服务器,从⽽就拥有了我们的权限。
3、DDOS分布式拒绝服务攻击 分布式拒绝服务攻击(DDOS)指的是借助于客户/服务器,将多个计算机联合起来作为攻击平台,对⼀个或多个⽬标发动攻击,从⽽成倍地提⾼拒绝服务攻击的威⼒。
通常,攻击者盗⽤别⼈的账号将DDOS主控程序安装在⼀个计算机上,代理程序安装在⽹络上的许多计算机上,在⼀个设定的时间,主控程序将与⼤量代理程序进⾏通讯。
代理程序收到指令就发动攻击,从⽽占⽤服务器的资源,⽆法正常向⽤户提供服务。
任何事物的发展都是有利有弊的,⾼速⼴泛连接的⽹络也不例外。
⼀⽅⾯⽹络给⼤家带来了便捷,另⼀⽅⾯也为DDOS攻击创造了极为有利的条件。
在低速⽹络时代时,由于技术的限制,⿊客占领攻击⽤的傀儡机时,总是会优先考虑离⽬标⽹络距离近的机器。
⽽在如今⽹络⾼速发展、⼴泛连接的信息化时代,数据传输不再是问题,这使得攻击可以从更远的地⽅或者其他城市发起,从⽽作为攻击的傀儡机可以分布在更⼤的范围,选择起来更灵活了。
被DDOS攻击时的现象: 1)被攻击主机上会有⼤量等待的TCP连接; 2)⽹络中充斥着⼤量的⽆⽤的数据包,源地址为假; 3)制造⾼流量⽆⽤数据,造成⽹络拥塞,使受害主机⽆法正常和外界通讯; 4)利⽤受害主机提供的服务或传输协议上的缺陷,反复⾼速的发出特定的服务请求,使受害主机⽆法及时处理所有正常请求; 4、⽂件上传漏洞 ⽂件上传漏洞是指⽤户上传了⼀个可执⾏的脚本⽂件,并通过此脚本⽂件获得了执⾏服务器命令的能⼒。
Web网站测试方法在Web工程过程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。
基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。
重要的是,还要从最终用户的角度进行安全性和可用性测试。
然而,Internet 和Web媒体的不可预见性使测试基于Web的系统变得困难。
因此,我们必须为测试和评估复杂的基于Web的系统研究新的方法和技术。
本文将 web 测试分为 6 个部分:1. 功能测试2. 性能测试(包括负载/压力测试)3. 用户界面测试4. 兼容性测试5. 安全测试6. 接口测试本文的目的是覆盖 web 测试的各个方面,未就某一主题进行深入说明。
1 功能测试1.1 链接测试链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。
链接测试可分为三个方面。
首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。
链接测试可以自动进行,现在已经有许多工具可以采用。
链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。
采取措施:采用自动检测网站链接的软件来进行。
推荐软件:Xenu Link Sleuth 免费绿色免安装软件HTML Link Validator 共享(30天试用)1.2 表单测试当用户通过表单提交信息的时候,都希望表单能正常工作。
如果使用表单来进行在线注册,要确保提交按钮能正常工作,当注册完成后应返回注册成功的消息。
如果使用表单收集配送信息,应确保程序能够正确处理这些数据,最后能让顾客能让客户收到包裹。
要测试这些程序,需要验证服务器能正确保存这些数据,而且后台运行的程序能正确解释和使用这些信息。
常用安全性测试用例安全性测试:建立整体的威胁模型,测试溢出漏洞、信息泄漏、错误处理、SQL注入、身份验证和授权错误.1、输入验证客户端验证服务器端验证(禁用脚本调试,禁用Cookies)1.输入很大的数(如4,294,967,269),输入很小的数(负数)2.输入超长字符,如对输入文字长度有限制,则尝试超过限制,刚好到达限制字数时有何反应3.输入特殊字符,如:~!@#$%^&*()_+<>:”{}|4.输入中英文空格,输入字符串中间含空格,输入首尾空格5.输入特殊字符串NULL,null,0x0d 0x0a6.输入正常字符串7.输入与要求不同类型的字符,如: 要求输入数字则检查正值,负值,零值(正零,负零),小数,字母,空值; 要求输入字母则检查输入数字8.输入html和javascript代码9.对于像回答数这样需检验数字正确性的测试点,不仅对比其与问题最终页的回答数,还要对回答进行添加删除等操作后查看变化例如:1.输入<html”>”gfhd</html>,看是否出错;2.输入<input type=”text”name=”user”/>,看是否出现文本框;3.输入<script type=”text/javascript”>alert(“提示”)</script>看是否出现提示。
关于上传:1.上传文件是否有格式限制,是否可以上传exe文件;2.上传文件是否有大小限制,上传太大的文件是否导致异常错误,上传0K的文件是否会导致异常错误,上传并不存在的文件是否会导致异常错误;3.通过修改扩展名的方式是否可以绕过格式限制,是否可以通过压包方式绕过格式限制;4.是否有上传空间的限制,是否可以超过空间所限制的大小,如将超过空间的大文件拆分上传是否会出现异常错误。
5.上传文件大小大于本地剩余空间大小,是否会出现异常错误。
6.关于上传是否成功的判断。
15.2 Cookie安全测试Cookie提供了一种在Web应用程序中存储用户特定信息的方法,例如存储用户的上次访问时间等信息。
但是Cookie在带来这些编程的方便性的同时,也带来了安全上的问题。
Cookie的安全性问题与从客户端获取数据的安全性问题是类似的,可以把Cookie看成是另外一种形式的用户输入,因此很容易被黑客们非法利用这些数据。
由于Cookie保存在客户端,因为在客户端可以直接看到Cookie中存储的数据,而且可以在浏览器向服务器端发送Cookie之前更改Cookie的数据。
因此,对Cookie的测试,尤其是安全性方面的测试非常重要,是Web应用系统测试中的重要方面。
15.2.1 如何判断正在测试的Web系统使用了cookie?在进行Cookie测试之前,首先要判断被测试的Web应用系统是否使用了Cookie。
当然可以找出web系统的设计文档、功能规格说明书来看个究竟,或者直接问开发人员。
除此之外,还有更加直接的办法:(1)找到电脑中存储cookie的目录。
需要注意的是不同的浏览器把Cookie数据存储在不同的目录,IE浏览器把Cookie数据存储在类似下面的目录:C:\Documents and Settings\user\Local Settings\Temporary Internet Files(2)删除所有cookie。
在IE中,cookie与缓存的临时文件存储在一起。
可使用IE中的删除Cookies文件功能来删除所有Cookie,也可直接找到存储Cookie文件的目录进行删除。
打开IE浏览器,选择菜单“工具 | Internet选项”,如图15.21所示。
图15.21 Internet选项单击“删除Cookies”按钮,出现如图15.22所示的对话框。
单击“确定”按钮,把所有Cookie文件删除掉。
图15.22 删除Cookies(3)设置IE,当使用到Cookie时自动提示。
常见的web安全性测试重点1.XSS(CrossSite Script)跨站脚本攻击XSS(CrossSite Script)跨站脚本攻击。
它指的是恶意攻击者往Web 页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web 里面的html 代码会被执行,从而达到恶意用户的特殊目的。
测试方法:在数据输入界面,添加记录输入:<script>alert(/30141/)</script>,添加成功如果弹出对话框,表明此处存在一个XSS漏洞。
或把url请求中参数改为<script>alert(/30141/)</script>,如果页面弹出对话框,表明此处存在一个XSS 漏洞修改建议:过滤掉用户输入中的危险字符。
对输入数据进行客户端和程序级的校验(如通过正则表达式等)。
Eg:对用户输入的地方和变量有没有做长度和对”<”,”>”,”;”,”’”等字符是否做过滤2.CSRF与跨站脚本(XSS)CSRF与跨站脚本(XSS),是指请求迫使某个登录的浏览器向易受攻击的Web应用发送一个请求,然后以受害者的名义,为入侵者的利益进行所选择的行动。
测试方法:同个浏览器打开两个页面,一个页面权限失效后,另一个页面是否可操作成功使用工具发送请求,在http请求头中不加入referer字段,检验返回消息的应答,应该重新定位到错误界面或者登陆界面。
修改建议:在不同的会话中两次发送同一请求并且收到相同的响应。
这显示没有任何参数是动态的(会话标识仅在cookie 中发送),因此应用程序易受到此问题攻击。
因此解决的方法为1.Cookie Hashing(所有表单都包含同一个伪随机值):2. 验证码3.One‐Time Tokens(不同的表单包含一个不同的伪随机值)客户端保护措施:应用防止CSRF攻击的工具或插件。
3.注入测试SQL注入是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
网络安全测试中的身份验证漏洞检测随着互联网的不断发展和普及,网络安全问题日益突出。
尤其是在网络应用中,身份验证漏洞的存在给个人隐私和信息安全带来极大的威胁。
因此,对网络安全测试中的身份验证漏洞进行检测和修复显得尤为重要。
本文将介绍网络安全测试中身份验证漏洞的定义、常见类型和检测方法,并探讨如何有效修复这些漏洞,以保障网络系统的安全和稳定性。
一、身份验证漏洞的定义和常见类型身份验证漏洞指的是网络应用中存在的一种潜在漏洞,使得攻击者可以通过绕过或破解身份验证机制,获取未授权的访问权。
身份验证漏洞的类型多种多样,常见的包括密码猜测攻击、会话劫持、跨站点请求伪造(CSRF)等。
其中,密码猜测攻击是指攻击者通过不断尝试登录密码,直到猜中正确密码,从而获取非法访问权限。
会话劫持则是攻击者通过获取用户的有效会话令牌或Cookie等信息,冒充合法用户进行操作。
而CSRF攻击则是攻击者冒充合法用户,通过发送伪造的请求,实现对用户账户的非法操作。
二、身份验证漏洞的检测方法在进行网络安全测试时,身份验证漏洞的检测是至关重要的环节。
下面介绍几种常见的身份验证漏洞检测方法。
1. 密码猜测攻击检测:密码猜测攻击是最常见且简单的身份验证漏洞,常用的检测方法是通过暴力破解技术,尝试使用字典文件或常见密码来尝试登录。
为了防止密码猜测攻击,开发人员应采取一些措施,如设置登录失败次数限制、增加登录验证码等。
2. 会话劫持检测:会话劫持是一种高级的身份验证漏洞,常用的检测方法包括主动扫描和被动监控。
主动扫描是指针对目标应用发起主动请求,识别是否存在会话劫持漏洞。
被动监控则是通过网络抓包工具,捕获和分析网络流量,检测是否有异常的会话请求。
3. CSRF漏洞检测:CSRF漏洞是一种特殊的身份验证漏洞,常用的检测方法是使用自动化工具进行漏洞扫描。
这些工具会模拟攻击者的行为,在目标应用中发送伪造的请求,检测是否存在CSRF漏洞。
三、身份验证漏洞的修复方法及时修复身份验证漏洞对于保护网络系统的安全至关重要。
15.2 Cookie安全测试Cookie提供了一种在Web应用程序中存储用户特定信息的方法,例如存储用户的上次访问时间等信息。
但是Cookie在带来这些编程的方便性的同时,也带来了安全上的问题。
Cookie的安全性问题与从客户端获取数据的安全性问题是类似的,可以把Cookie看成是另外一种形式的用户输入,因此很容易被黑客们非法利用这些数据。
由于Cookie保存在客户端,因为在客户端可以直接看到Cookie中存储的数据,而且可以在浏览器向服务器端发送Cookie之前更改Cookie的数据。
因此,对Cookie的测试,尤其是安全性方面的测试非常重要,是Web应用系统测试中的重要方面。
15.2.1 如何判断正在测试的Web系统使用了cookie?在进行Cookie测试之前,首先要判断被测试的Web应用系统是否使用了Cookie。
当然可以找出web系统的设计文档、功能规格说明书来看个究竟,或者直接问开发人员。
除此之外,还有更加直接的办法:(1)找到电脑中存储cookie的目录。
需要注意的是不同的浏览器把Cookie数据存储在不同的目录,IE浏览器把Cookie数据存储在类似下面的目录:C:\Documents and Settings\user\Local Settings\Temporary Internet Files(2)删除所有cookie。
在IE中,cookie与缓存的临时文件存储在一起。
可使用IE中的删除Cookies文件功能来删除所有Cookie,也可直接找到存储Cookie文件的目录进行删除。
打开IE浏览器,选择菜单“工具 | Internet选项”,如图15.21所示。
图15.21 Internet选项单击“删除Cookies”按钮,出现如图15.22所示的对话框。
单击“确定”按钮,把所有Cookie文件删除掉。
图15.22 删除Cookies(3)设置IE,当使用到Cookie时自动提示。
如果想确切地知道测试的Web系统在什么地方使用了Cookie,可以对IE浏览器进行一些设置,让IE浏览器在使用到Cookie时自动弹出提示窗口,这样测试时就能知道在什么时候、什么功能操作使用到了Cookie。
IE的设置方法是:打开IE菜单“工具 | Internet选项”,切换到“隐私”页面,如图15.23所示。
图15.23 设置IE单击“高级”按钮,出现如图15.24所示的界面。
图15.24 高级隐私策略设置选择“覆盖自动cookie处理”,在“第一方Cookie”处选择“提示”,在“第三方Cookie”处也选择“提示”,然后单击“确定”按钮。
这样,当Web页面使用到Cookie时,IE浏览器会自动提示如图15.25所示的界面。
图15.25 隐私警报说明:单击其中的“详细信息”,可以看到如图15.26所示的Cookie详细信息。
包括Cookie的名称、来源、路径、数据、截止期限等信息。
图15.26 查看详细的Cookie信息15.2.2 Cookie测试方法 - 屏蔽Cookie这是最简单的Cookie测试方法,检查当Cookie被屏蔽时Web系统会出现什么问题。
首先关闭所有浏览器实例,删除测试机器上的所有cookie。
设置IE屏蔽Cookie,可通过把IE的“隐私”设置为如图15.27所示的“阻止所有Cookie”。
图15.27 阻止所有Cookie然后运行Web系统的所有主要功能,很多时候会出现功能不能正常运行的情况。
如果用户必须激活Cookie使用设置才能正常运行web系统的话,则需要检查Web服务器是否能正确识别出客户端的Cookie设置情况,当用户屏蔽了Cookie时,Web服务器应该发送一个提示页面,告诉用户激活Cookie设置才能使用系统。
例如下面的代码:public partial class _Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){System.Web.HttpBrowserCapabilities myBrowserCaps = Request.Browser;// 判断浏览器是否支持Cookiesif (((System.Web.Configuration.HttpCapabilitiesBase)myBrowserCaps).Cookies) {this.Title = "浏览器支持Cookies。
";// 判断浏览器是否接受Cookiesif (!Page.IsPostBack){if (Request.QueryString["AcceptsCookies"] == null){// 判断浏览器是否禁用了CookieHttpCookie TestCookie = new HttpCookie("TestCookie");Response.Cookies["TestCookie"].Value = "OK";Response.Cookies["TestCookie"].Expires = DateTime.Now.AddMinutes(1);Response.Cookies.Add(TestCookie);Response.Redirect( "TestForCookies.aspx?redirect="+Server.UrlEncode(Request.Url.ToString().Replace("localhost","127.0.0.1")) );}else{this.Title = "Accept cookies = "+ Server.UrlEncode(Request.QueryString["AcceptsCookies"]);}}}else{this.Title = "浏览器不支持Cookies。
";}}}public partial class TestForCookies : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){string redirect = Request.QueryString["redirect"];string acceptsCookies;if (Request.Cookies["TestCookie"] == null){acceptsCookies = "NO";}else{acceptsCookies = "Yes";//删除CookieResponse.Cookies["TestCookie"].Expires = DateTime.Now.AddDays(-1);}Response.Redirect(redirect + "?AcceptsCookies=" + acceptsCookies, true);}}说明:首先判断浏览器是否支持Cookie,然后判断浏览器是否禁用了Cookie,后续的代码可根据这些判断的结果来决定是否使用Cookie功能,或者提示用户启用Cookie设置。
15.2.3 Cookie测试方法 - 有选择性地拒绝Cookie这种测试方法的目的是验证这种情况:如果某些Cookie被接受,某些Cookie被拒绝,Web系统会发生什么事情?首先删除测试机器上的所有Cookie,然后设置IE的Cookie选项,当Web系统试图设置一个Cookie时弹出提示。
然后运行Web系统的所有主要功能。
在弹出的Cookie提示中,接受某些Cookie,拒绝某些Cookie。
检查Web系统的工作情况,看Web服务器是否能检测出某些Cookie被拒绝了,是否出现正确的提示信息。
有可能Web系统会因为这样而出现错误、崩溃、数据错乱,或其他不正常的行为。
例如在测试过程中,对前面的用于测试浏览器是否接受Cookie的“测试Cookie”都予以接受,但是对后面的设置Cookie则予以拒绝,那么如果后续的代码要依赖所设置的Cookie 时,则会出错。
例如下面的代码中,读取Cookies部分的代码如果没有判断Cookie是否存在,则会出现异常。
// 设置Cookiesprotected void Button1_Click(object sender, EventArgs e){HttpCookie myCookie = new HttpCookie("LastVisit");DateTime now = DateTime.Now;myCookie.Value = now.ToString();myCookie.Expires = now.AddHours(1);Response.Cookies.Add(myCookie);}// 读取Cookiesprotected void Button2_Click(object sender, EventArgs e){//if (Request.Cookies["LastVisit"] != null)//{bel1.Text = Request.Cookies["LastVisit"].Value;//}}15.2.4 Cookie测试方法 - 篡改Cookie如果某些存储下来的Cookie被篡改了,或者被删除了,Web系统会出现什么问题吗?如果Web系统不能检测到Cookie数据被篡改了,则很可能出现功能异常,或者数据错乱等问题。
优秀的设计则会检测到Cookie数据的篡改,及时更新替换Cookie 文件。
假设有如下页面,根据Cookie判断访问者的到访顺序,并且根据到访顺序做出相应的业务处理,如果是第8位访问者,则送出奖品,那么就可能导致别有用心者通过篡改Cookie数据来获得奖品。
protected void Page_Load(object sender, EventArgs e){int counter;if (Request.Cookies["counter"] == null){counter = 0;}else{// 读取Cookie数据counter = int.Parse(Request.Cookies["counter"].Value);}counter++;// 如果是第8位访问者if (counter == 8){bel2.Text = "您是第8位访问者!";}// 设置CookieResponse.Cookies["counter"].Value = counter.ToString();Response.Cookies["counter"].Expires = DateTime.Now.AddDays(1);}可以通过修改存储下来的Cookie数据来达到不公平竞争的目的,查找到这个 页面使用的Cookie文件并用文本编辑工具打开,可看到类似如下信息:counter3127.0.0.1/153612913665282990815758905302429907956*把counter后面的值改为7(注意修改前要关闭浏览器)。