Cookie测试大纲
一. Cookie技术背景说明
1. Cookie文件的实质
Cookie实际上是Web服务端与客户端(典型的是浏览器)交互时彼此传递的一部分内容,内容可以是任意的,但要在允许的长度范围之内。客户端会将它保存在本地机器上(如IE便会保存在本地的一个txt文件中),由客户端程序对其进行管理,过期的Cookie会自动删除。每当客户端访问某个域下某个目录中的网页时,便会将保存在本地并且属于那个域下对应目录的有效Cookie信息附在网页请求的头部信息当中一并发送给服务端。
2. Cookie文件的保存位置
不同的客户端,其Cookie的保存方式、保存位置各不相同,这里只说一下Windows系统中IE的Cookie文件保存位置。
在Windows 2000/XP系统中,Cookie默认保存在C:\Documents and Settings\<username>\Cookies\目录下(此处的<username>为你登录系统时使用的用户名,在开始->运行中输入cookies便可打开该目录),命名规则为<username>@<domain>.txt。
与2000/XP不同的是,在Windows 95/98/ME系统中Cookie文件默认是保存在C:\Windows\Cookies\目录下的。
3. Cookie文件的格式
IE的Cookie文件实际上就是一个txt文本文件,只不过换行符标记为Unix换行标记(0x0A),由于记事本对Unix换行标记不兼容,打开后内容全在一行看起来不方便,我们可以用EditPlus或UltraEdit-32打开,打开之后,会看到形式如下的内容:
name
value
domain/
1600
1263382784
30020896
452781968
30020892
*
每一行的内容说明:
第一行 Cookie变量名
第二行 Cookie变量值
第三行 该Cookie变量所属域,形如csdn.net/、blog.csdn.net/或blog.csdn.net/lixianlin/
第四行 可选标志
第五行 该Cookie过期时间(FILETIME格式)的高位整数
第六行 该Cookie过期时间(FILETIME格式)的低位整数
第七行 该Cookie创建时间(FILETIME格式)的高位整数
第八行 该Cookie创建时间(FILETIME格式)的低位整数
第九行 Cookie记录分隔符(为一个星号* )
第三行中Cookie变量所属域,如csdn.net/,它是一个根域,也就是一级域,表示该Cookie变量在该根域下的所有目录中的网页都有效,不管访问该域下的哪个目录中的网页,浏览器都会将该Cookie信息附在网页头部信息当中发送给服务端;blog.csdn.net/,是一个二级域,表示该Cookie只对blog这个二级域下目录中的网页有效;blog.csdn.net/lixianlin/,是一个二级域下的目录,只有访问blog这个二级域下lixianlin这个目录中的网页时,才会把该Cookie信息附在请求头部信息当中发送给服务端。需要指出的是csdn.net/和www.csdn.net/并不相同,前者是根域,后者是一个二级域,只是人们习惯了www这样的形式,所以大多数的网站首页都用http://www.xxx.com/这样的二级域来访问。
二. Cookie测试
1. Cookie的保存路径
说明:
a) 通常情况下cookie的保存路径可以通过:注册表“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Cookies ”查看
b) 比较异常的情况,cookie保存路径为“%userprofile%\Local Settings\Temp\Cookies”
测试影响因素:
a) 默认cookie目录
b) 用户自定义cookie目录(目录为系统盘,其他磁盘,中文,全半角,简繁体,特殊字符,空格,超长路径)
c) 系统用户名为中文
d) 目标文件夹不存在
e) 目标文件夹只读
f) 目标文件夹隐藏
g) 目标文件夹无访问权限
h) 开启UAC
2. 应用程序写Cookie权限
说明:
a) Vista下开启UAC之后,会涉及到用户权限提升及虚拟化
b) Ie保护模式下,其完整性级别为低,而其他ie核心的浏览器启动时,完整性级别为高,cookie目录的完整性级别为低
测试影响因素:
a) 开启UAC,administrator,自建管理员,标准用户(提升/不提升权限)
b) Ie开启保护模式和关闭保护模式
c) 其他IE核心浏览器
d) Internet选项隐私等级设置
e) Cookie完整性级别高于应用程序完整性级别
3. 应用程序写Cookie方式
说明:
a) 通常情况下,写cookie不能跨域,例如当前页面是s.sohu.com域下,种cookie的js在v.sohu.com上,那么这时候通常不会写不成功的
b) 如果需要跨域写cookie,那么需要用到Crossdomain.Xml,简单来说这文件是一份白名单,指定的站点是能与该站点进行跨域数据传输的
测试影响因素:
a) 种cookie的文件与当前页面属于不同域
4. Cookie内容及安全性
说明:
a) 通常情况下cookie文件中的信息,会交由其他应用程序进行处理(通常情况下是ie在进行浏览的时候读取这些信息,也有另外的应用程序会对这些cookie信息进行分析然后用于自己的特定用途)
测试影响因素:
a) 需求实现的检验
b) 破坏各行数据进行容错性测试
c) 修改服务器时间使过期
d) 修改特定行key所对应的value为js或者正则或者sql语句,检验基本的安全性
5. Cookie的冲突
说明:
a) 因为cookie是需要操作本地磁盘文件的,因而需要考虑杀毒软件及安全监控软件
测试影响因素:
a) 写cookie过程中各类安全监控软件是否提示
b) 写cookie后使用各种杀毒软件扫描是否提示异常
三. 参考资料
http://blog.csdn.net/lixianlin/archive/2008/07/30/2738229.aspx
http://www.flashas.net/asbc/20080310/2632.html
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Anlegor/archive/2009/12/07/4959400.aspx