网络技术 百文网手机站

Web端cookie知识介绍

时间:2022-10-14 15:04:35 网络技术 我要投稿

Web端cookie知识介绍

  Cookie,有时也用其复数形式Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。下面是小编带来的Web端cookie知识介绍,希望对你有帮助。

Web端cookie知识介绍

  首先,我们要关注什么是cookie以及cookie是如何工作的。当对cookie的定义以及工作原理、如何获得存储在硬盘上的cookie以及应该怎样对cookie进行编辑、设置有一个比较清晰地认识时,那么cookie测试你就会游刃有余了。

  什么是cookie?

  cookie是web服务器存储在客户端硬盘上的一小段文本信息。这些信息存储后用于Web浏览器去检索来自相关计算机的信息。通常,cookie包含用于在不同网页之间通信的个性化用户数据和信息。

  为什么使用cookie?

  cookie标识着计算机上用户的身份,并用于跟踪用户浏览整个网站页面的过程。我们知道Web浏览器和Web服务器之间的通信是无状态的。

  比如,你访问域名http://www.example.com/1.html,Web浏览器将查询来自example.com网络服务器的1.html页面,下次当你输入网址http://www.example.com/2.html的时候,浏览器就会发送新的请求发给example.com网络服务器的2.html网页,而整个过程中Web服务器根本不知道前一页1.html已经提供过相关服务了。

  如果你想让Web服务器知道该用户在前一段时间的通信历史,就需要在Web浏览器和Web服务器的交互过程中维持用户的状态信息,而这正是cookie作用的地方。因此,cookie服务的目的是维持Web服务器和用户间的交互。

  cookie是怎样工作的?

  用来在网络上进行超文本信息传输的HTTP协议负责维护cookie。事实上HTTP协议有两种类型,无状态的HTTP协议和有状态HTTP协议。无状态HTTP协议不保留以前访问过的网页的历史记录。但是有状态HTTP协议将会保留Web浏览器和Web服务器交互的一些历史,有状态HTTP协议将使用cookie来维持用户交互。

  当你访问一个使用cookie的网站或网页时,网页中的一小段代码(js、php和perl等脚本语言)将会把cookie写入到用户的机器中。

  下面是用来写cookie的一个例子,它可以放置任何HTML网页内:

  Set-Cookie:NAME=VALUE;expires=DATE;path=PATH;domain=DOMAIN_NAME;

  译者注:若您想模拟响应Cookie,可使用三剑客接口测试平台Xmock模块。

  当用户访问同一页面或同一域以后,这个cookie将会从磁盘中被读取并用于识别该域的同一个用户的第二次访问。另外需要解释的是cookie的过期时间设置,这个时间是由使用cookie的应用决定的。

  通常有两种类型的cookie会被写入用户的计算机上。

  1)会话cookie:从打开浏览器开始,这个cookie就是活跃的,直到我们关闭浏览器,这个cookie才会被删除。有些时候应用程序也会将该cookie的过期时间设置为20分钟。

  2)永久cookie:它是永久写入用户机器上的,有效期可以持续数月或数年。

  cookie在哪里存储?

  任何网页应用程序写入的cookie都会被保存在用户本地硬盘的一个文本文件中。而且cookie的存储路径也与浏览器的设置有关。不同的浏览器会在不同的路径下存储cookie。例如IE浏览器存储cookie的路径为 “C:Users Default User AppDataRoamingMicrosoftWindowsCookies”,这里的“Default User”表示当前登录的用户,比如 “Administrator”等。

  通过浏览器导航选项可以很容易的发现cookie的存储位置。在Mozilla Firefox浏览器的选项中,你甚至可以看到cookie的数据信息。具体操作为:打开Mozilla Firefox浏览器,点击工具- >选项- >隐私,然后点击“显示cookie”按钮。

  cookie是怎么存储的?

  让我们来举一个例子,在Mozilla Firefox浏览器写下rediff.com的cookie,当在Mozilla Firefox浏览器打开网址rediff.com或登录rediff账户时,一个cookie就被写入到你的硬盘上。要查看此cookie只需找到上面提到的路径点击“显示Cookie”按钮。点击Rediff.com站点下这个cookie列表。你可以看到不同rediff域名写入的不同cookie。

  cookie的应用场景

  1)要实现购物车:你可以用来维持在线订购系统的一些状态,能够记住用户想要买什么。假设用户在他们的购物车增加了一些产品,但是由于某种原因,用户不希望购买这些产品,并关闭了浏览器窗口,而当下次相同的用户访问购买页面,他是可以看到自己上一次访问过程中在购物车添加的商品的。

  2)个性化网站:用户在浏览网页时,根据个人偏好设置一些网页为不可见,或是将某些网站设置为不可访问,cookie将会记住用户的设置,下次用户在浏览网页的时候,cookie会根据用户的设置屏蔽一些网页。

  3)用户追踪:要在特定的时间里,追踪一些特殊的访客。

  4)营销:有些公司通过cookie在用户的机器上展示广告。cookie可以控制这些广告,什么时候、以什么样的形式被展示,同时也可以用来判断什么广告是用户感兴趣的,哪些关键字是用户曾在网站上搜索过的,所有这些东西都会记录在cookie中。

  5)用户会话:cookie可以使用用户ID和密码在特定的域追踪用户的会话。

  cookie的缺点

  1)即使cookie是维持用户交互的好方法,但是如果用户设置浏览器为:写cookie警告或完全禁止cookie,那么包含cookie的网站将被完全禁用,用户将不能执行任何操作,从而造成网站流量的大量丢失。

  2)cookie冗余:如果你在每一个网页导航中写太多cookie,用户打开浏览器选项:写cookie警告,这足可以使用户对你的网站敬而远之。

  3)安全问题:用户的个人信息被存储在cookie中,如果有黑客劫持了用户的cookie,则黑客可以访问用户的个人信息。甚至别的域也可以读取一些损坏的cookie,从而带来安全问题。

  4)敏感信息:有些网站可能在cookie中存储敏感信息,由于涉及隐私,这么做是禁止的。

  Test Cases

  1)在设计文档中的一种隐私策略是确保个人信息或敏感数据都不要存储在cookie中。

  2)如果没有别的选择,必须要将敏感数据存保存在cookie的时候,那么敏感数据需要以一种加密的方式存储到cookie中。

  3)测试人员必须确保网站上没有过度使用cookie。若浏览器频繁的提示写入cookie会给用户造成很大的困扰,可能导致网站失去流量,并最终失去业务。

  4)在浏览器的设置中禁用cookie:如果在网站中使用cookie,当用户禁用cookie时,网站主要功能将不起作用,因此,应当确保没有cookie时网站也是可用的。不应该由于禁用cookie而让页面有任何崩溃(在执行这个测试之前,请确保关闭所有浏览器,并且删除所有之前写的cookie)。

  5)接受或者拒绝一些cookie:检查网站的功能最好的办法是不接受任何cookie。可以在web应用程序写10个cookie,然后随机接受一些cookie,假如接受5个,拒绝5个。我们在执行这个测试用例时可以通过设置浏览器选项为在写入cookie时给出提示。在这个提示窗口中你可以接受或拒绝cookie。尽量访问该网站的主要功能,看看页面是否会因此崩溃或者出现数据损坏等现象。

  6)删除cookie:在测试环境下,允许网站写入cookie,然后关闭所有浏览器并手动从网站中删除所有cookie;访问网页并且检查页面的行为。

  7)破坏cookie:破坏一个cookie是容易的。前面我们已经知道cookie存储的位置。可以在记事本中手动编辑cookie并改变一些模糊的参数的值。像改变cookie内容,cookie的'名称或cookie的有效期限,然后查看网站的功能。在某些情况下损坏cookie能够读取其他域里面的数据。在网站中这是不应该发生的。注意如果cookie是由rediff.com域写的,就不可以被其他的域访问,比如yahoo.com,除非cookie被损坏或者有人试着攻击cookie数据。

  8)从web应用程序页面检查cookie的删除: 在测试一些“行动跟踪”门户网站时经常出现的场景:rediff.com域已经向cookie中写入数据,但是被这个域下的另一个网页删除。在“行为追踪”或“购买行为追踪”的网页测试中,当用户产生行为或是产生购买记录的时候,需要将已经写入磁盘的cookie删除,从而避免同一个cookie下产生多个行为或购买记录。适当的删除cookie中的内容,检查是否能够追踪到你的行为或是购买页面;另外检查cookie中同一个用户下不会存在非法的行为或购买记录。

  9)在多个浏览器测试cookie:检查你的web应用程序页面是否能在不同的浏览器上写入cookie,并且网站使用这些cookie可以正常工作,这是最重要的事情。你可以在常用的浏览器上测试你的web应用程序,例如不同版本的Internet explorer、Mozilla Firefox、netscape、opera等。

  10)如果你的web应用程序使用cookie维护用户的日志状态,并且你的应用程序使用用户名和密码记录,在许多情况下,你可以直接在浏览器地址栏看到登录用户ID参数。通过改变这个参数,你可以看到其他用户的相关信息。假定如果以前的用户ID是100,修改为 101,然后按enter键。当前用户的访问消息应该显示给用户,但是用户不应该能看到其他用户的账户信息。

  在测试网站cookie的时候,这些都是一些常用的测试用例。你可以在这些测试场景中,通过执行多个测试用例的组合来进行web的cookie测试。如果你有不同的应用场景,你可以在下面的评论中说说你的测试用例。

  拓展阅读

  巧禁Cookie安全上网

  一、IE选项法

  1、启动IE;

  2、在“工具”菜单上,单击“Internet选项”,打开“Internet选项”对话框;

  3、单击“隐私”选项卡,将滑块上移到更高的隐私级别。如果移动到最顶端则是选择“阻止所有的Cookie”,此时系统将阻止所有网站的 Cookie,而且网站不能读取计算机上已有的Cookie;

  4、单击“确定”按钮。

  二、属性设置法

  当然,上述的“IE选项法”笔者是在IE6中操作完成,如果你用的是IE5,那么请在“Internet选项”对话框中“安全”选项卡上进行设置,在 IE4中又有所不同。而下述的“属性设置法”把保存Cookie的文件夹设置为“只读”属性,从而网站也就无法向其中写入Cookie信息了。该法适用于各种版本的IE.

  1、启动“Windows资源管理器”;

  2、找到保存Cookie的文件夹。使用Windows版本不同,保存Cookie的文件夹会有所不同。比如,在Windows XP中,该文件夹为“C:Documents and tings用户名Cookies”文件夹;在Windows 98中,是“C:WindowsCookies”文件夹;

  3、右键单击该文件夹,再单击“属性”,打开文件夹属性对话框,选中“只读”复选框,指定此文件夹中的文件为只读属性,只读意味着文件不能被更改或意外删除;

  4、单击“确定”按钮。

  三、注册表法

  “属性设置法”实际上也有缺陷,就是网站照样可以读取计算机上已有的Cookie.而且有一些特殊Cookie不是以文本文件形式存在,而是保存在内存中。这类Cookie通常是用户在访问某些特殊网站时,由系统自动在内存中生成,一旦访问者离开该网站又自动将Cookie从内存中删除。上述两法对这些 Cookie就无能为力了,而“注册表法”可以弥补这些不足。

  1、单击“开始”菜单,再单击“运行”,然后在“打开”框中键入“regedit”,单击“确定”按钮,打开“注册表编辑器”窗口;

  2、依次展开 “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet tingsCacheSpecial PathsCookies”分支,右键单击“Cookies”,然后单击快捷菜单中的“删除”命令,当系统提示确认删除时,请单击“是”按钮;

  3、关闭“注册表编辑器”窗口。

  为了防止一些网站将Cookie文件放到你的计算机中,除了如上所述手动进行设置外,还有一个简便的方法是安装软件来保护你的Cookie文件。这类软件比较多,你可以到各大软件下载站点去下载。比如,Complete Cleanup Software Trail就是一款专门用来清除各种Cookie的软件,它的功能十分强大,不但能让已保存在计算机中的Cookie无处藏身,也能将用户浏览网页时保存在硬盘缓存中的垃圾信息清除。

【Web端cookie知识介绍】相关文章:

Java Web架构知识汇总09-27

java web基础知识09-03

web前端设计基础知识09-06

web程序复习重点知识10-29

如何禁用cookie功能08-27

怎么禁用cookie功能09-05

禁用Cookie功能的方法09-02

php怎么删除cookie08-11

java设置cookie方法流程09-09