Cookie

来源:互联网 发布:幸福大街 知乎 编辑:程序博客网 时间:2024/04/28 18:23

原文地址:https://zh.wikipedia.org/wiki/Cookie

 

Cookie

维基百科,自由的百科全书
跳转至: 导航、 搜索
本条目可能包含原创研究或未查证内容。(2009年10月4日)
请协助添加参考资料以改善这篇条目。详细情况请参见讨论页
Tango-nosources.svg
本条目需要补充更多来源(2009年10月4日)
请协助添加多方面可靠来源改善这篇条目无法查证的内容可能会被提出异议而移除。
HTTP持久 ·压缩 · 安全头字段ETag ·Cookie · Referrer · Location · Do Not Track · X-Forwarded-ForHTTP状态码301 Moved permanently302 Found303 See Other403 Forbidden404 Not Found

Cookie(复数形态Cookies),中文名称为小型文本文件小甜饼[1],指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。定义于RFC2109。为网景公司的前雇员Lou Montulli在1993年3月所发明。

目录

  • 1分类
  • 2用途
  • 3使用和禁用Cookies
    • 3.1Google Chrome
    • 3.2Konqueror
    • 3.3微软 Internet Explorer
    • 3.4Mozilla Firefox
    • 3.5Opera
    • 3.6苹果公司 Safari
  • 4识别功能
  • 5反对Cookies者
    • 5.1识别不精确
    • 5.2隐私,安全和广告
  • 6偷窃Cookies和脚本攻击
  • 7Cookies的替代品
  • 8外部参考
    • 8.1外部链接
    • 8.2

分类

Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。

内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。所以,按存在时间,可分为非持久Cookie和持久Cookie。

用途

因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两瓶饮料。最后结帐时,由于HTTP的无状态性,不通过额外的手段,服务器并不知道用户到底买了什么。 所以Cookie就是用来绕开HTTP的无状态性的“额外手段”之一。服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。 在刚才的购物场景中,当用户选购了第一项商品,服务器在向用户发送网页的同时,还发送了一段Cookie,记录着那项商品的信息。当用户访问另一个页面,浏览器会把Cookie发送给服务器,于是服务器知道他之前选购了什么。用户继续选购饮料,服务器就在原来那段Cookie里追加新的商品信息。结帐时,服务器读取发送来的Cookie就行了。 Cookie另一个典型的应用是当登录一个网站时,网站往往会请求用户输入用户名和密码,并且用户可以勾选“下次自动登录”。如果勾选了,那么下次访问同一网站时,用户会发现没输入用户名和密码就已经登录了。这正是因为前一次登录时,服务器发送了包含登录凭据(用户名加密码的某种加密形式)的Cookie到用户的硬盘上。第二次登录时,(如果该Cookie尚未到期)浏览器会发送该Cookie,服务器验证凭据,于是不必输入用户名和密码就让用户登录了。

使用和禁用Cookies

用户可以改变浏览器的设置,以使用或者禁用Cookies。

Google Chrome

  • “自定义和控制”(浏览器地址栏右侧的扳手图标) > 选项(设置) > 高级选项(显示高级设置)

通过cookie设置,更改cookie设置(隐私权说明 > 内容设置 > Cookie(允许站点存储本机数据 (建议)

Konqueror

  • 如果没有设置cookie列表,请记住在域名前面加入“.”,例如.wikipedia.org,否则wikipedia将不会读取cookie(针对KDE 3.3)。

微软Internet Explorer

工具 > Internet选项 > 隐私

  • 调节滑块或者点击“高级”,进行设置。

MozillaFirefox

工具 > 选项 > 隐私

(注:在Linux版本中,可能会是如下操作:编辑 > 属性 > 隐私, 而Mac则是:Firefox > 偏好 > 隐私)

  • 设置Cookies选项
    • 设定阻止/允许的各个域内Cookie
    • 查看Cookies管理窗口,检查现存Cookie信息,选择删除或者阻止它们

Opera

按F12弹出一个菜单,从中可以快速设置允许或禁用cookie。
更多设置项目在 首选项 > 高级 > cookie
也可对不同域作不同的cookie设置。在网页空白处 按右键 > 编辑站点首选项 > cookie

苹果公司Safari

Safari > 预置 > 安全标签

  • 选择以下的选项
    • 总是 接受 Cookies
    • 永不 接受 Cookies
    • 接受 Cookies 仅从您浏览的站点(例如,不接受来自其它站点的广告)默认的选项.

您可以显示所有驻留在您浏览器中的 cookies,也可随时将它们之一删除。

识别功能

如果在一台计算机中安装多个浏览器,每个浏览器都会以独立的空间存放cookie。因为cookie中不但可以确认用户,还能包含计算机和浏览器的信息,所以一个用户用不同的浏览器登录或者用不同的计算机登录,都会得到不同的cookie信息,另一方面,对于在同一台计算机上使用同一浏览器的多用户群,cookie不会区分他们的身份,除非他们使用不同的用户名登录。

反对Cookies者

一些人反对cookies在网络中的应用,他们的理由如下:

识别不精确

  • 识别功能

隐私,安全和广告

Cookies在某种程度上说已经严重危及用户的隐私和安全。其中的一种方法是:一些公司的高层人员为了某种目的(譬如市场调研)而访问了从未去过的网站(通过搜索引擎查到的),而这些网站包含了一种叫做网页臭虫的图片,该图片透明,且只有一个象素大小(以便隐藏),它们的作用是将所有访问过此页面的计算机写入cookie。而后,电子商务网站将读取这些cookie信息,并寻找写入这些cookie的网站,随即发送包含了针对这个网站的相关产品广告的垃圾邮件给这些高级人员。

偷窃Cookies和脚本攻击

虽然cookies没有中电脑病毒那么危险,但它仍包含了一些敏感信息:用户名,电脑名,使用的浏览器和曾经访问的网站。用户不希望这些内容泄漏出去,尤其是当其中还包含有私人信息的时候。

这并非危言耸听,跨站点脚本(Cross site scripting)可以达到此目的。在受到跨站点脚本攻击时,cookie盗贼和cookie毒药将窃取内容。一旦cookie落入攻击者手中,它将会重现其价值。

  • Cookie盗贼:搜集用户cookie并发给攻击者的黑客。攻击者将利用cookie信息通过合法手段进入用户帐户。
  • Cookie投毒:一般认为,Cookie在储存和传回服务器期间没有被修改过,而攻击者会在cookie送回服务器之前对其进行修改,达到自己的目的。例如,在一个购物网站的cookie中包含了顾客应付的款项,攻击者将该值改小,达到少付款的目的。这就是cookie 投毒。

Cookies的替代品

鉴于cookie的局限和反对者的声音,有如下一些替代方法:

  • Brownie方案,是一项开放源代码工程,由SourceForge发起。Brownie曾被用以共享在不同域中的接入,而cookies则被构想成单一域中的接入。这项方案已经停止开发。
  • P3P,用以让用户获得更多控制个人隐私权利的协议。在浏览网站时,它类似于cookie。
  • 在与服务器传输数据时,通过在地址后面添加唯一查询串,让服务器识别是否合法用户,也可以避免使用cookie。

外部参考

外部链接

  1. ^香港中学会考08年CIT卷一中文版