设为首页
收藏本站
本站论坛
   
3
3
   
  文章列表      

cookie介绍,详解,说明,FAQ!

> >
cookies现在经常被大家提到,那么到底什么是cookies,它有什么作用呢?cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。 

当你再次来到该网站时,网站通过读取cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。从本质上讲,它可以看作是你的身份证。但cookies不能作为代码执行,也不会传送技术,且为你所专有,并只能由提供它的服务器来读取。保存的信息片断以"名/值"对(name-value pairs)的形式储存,一个"名/值"对仅仅是一条命名的数据。一个网站只能取得它放在你的电脑中的信息,它无法从其它的cookies文件中取得信息,也无法得到你的电脑上的其它任何东西。 cookies中的内容大多数经过了加密处理,因此一般用户看来只是一些毫无意义的字母数字组合,只有服务器的CGI处理程序才知道它们真正的含义。 

由于cookies是我们浏览的网站传输到用户计算机硬盘中的文本文件或内存中的数据,因此它在硬盘中存放的位置与使用的操作系统和浏览器密切相关。在Windows 9X系统计算机中,cookies文件的存放位置为C:/Windows/cookies,在Windows NT/2000/XP的计算机中,cookies文件的存放位置为C:/Documents and Settings/用户名/cookies。 

硬盘中的cookies文件可以被Web浏览器读取,它的命令格式为:用户名@网站地址[数字].txt。如笔者计算机中的一个cookies文件名为:ch@163[1].txt。要注意的是:硬盘中的cookies属于文本文件,不是程序。 

cookies的设置 

你可以在IE的"工具/Internet选项"的"常规"选项卡中,选择"设置/查看文件",查看所有保存到你电脑里的cookies。这些文件通常是以user@domain格式命名的,user是你的本地用户名,domain是所访问的网站的域名。如果你使用NetsCape浏览器,则存放在"C:/PROGRAMFILES/NETS- CAPE/USERS/"里面,与IE不同的是,NETSCAPE是使用一个cookie文件记录所有网站的cookies。 

我们可对cookie进行适当设置:打开"工具/Internet选项"中的"隐私"选项卡(注意该设置只在IE6.0中存在,其他版本IE可以单击"工具/Internet选项" "安全"标签中的"自定义级别"按钮,进行简单调整),调整cookie的安全级别。通常情况,可以调整到"中高"或者"高"的位置。多数的论坛站点需要使用cookie信息,如果你从来不去这些地方,可以将安全级调到"阻止所有cookies";如果只是为了禁止个别网站的cookie,可以单击"编辑"按钮,将要屏蔽的网站添加到列表中。在"高级"按钮选项中,你可以对第一方cookie和第三方的cookie进行设置,第一方cookie是你正在浏览的网站的cookie,第三方cookie是非正在浏览的网站发给你的cookie,通常要对第三方cookie选择"拒绝"。你如果需要保存cookie,可以使用IE的"导入导出"功能,打开"文件/导入导出",按提示操作即可。 

cookies的写入与读取 

cookies集合是附属于Response对象及Request对象的数据集合,使用时需要在前面加上Response或Request。 

用于给客户机发送cookies的语法通常为: 

当给不存在的cookies集合设置时,就会在客户机创建,如果该cookies己存在,则会被代替。由于cookies是作为HTTP传输的头信息的一部分发给客户机的,所以向客户机发送cookies的代码一般放在发送给浏览器的HTML文件的标记之前。 

如果用户要读取cookies,则必须使用Request对象的cookies集合,其使用方法是: 需要注意的是,只有在服务器未被下载任何数据给浏览器前,浏览器才能与Server进行cookies集合的数据交换,一旦浏览器开始接收Server所下载的数据,cookies的数据交换则停止,为了避免错误,要在程序和前面加上response.Buffer=True。 
cookies的应用 

几乎所有的网站设计者在进行网站设计时都使用了cookie,因为他们都想给浏览网站的用户提供一个更友好的、人文化的浏览环境,同时也能更加准确地收集访问者的信息。 

网站浏览人数管理 

由于代理服务器、缓存等的使用,唯一能帮助网站精确统计来访人数的方法就是为每个访问者建立一个唯一的ID。使用cookie,网站可以完成以下工作:测定多少人访问过;测定访问者中有多少是新用户(即第一次来访),多少是老用户;测定一个用户多久访问一次网站。 

通常情况下,网站设计者是借助后台数据库来实现以上目的的。当用户第一次访问该网站时,网站在数据库中建立一个新的ID,并把ID通过cookie传送给用户。用户再次来访时,网站把该用户ID对应的计数器加1,得到用户的来访次数或判断用户是新用户还是老用户。 

按照用户的喜好定制网页外观 

有的网站设计者,为用户提供了改变网页内容、布局和颜色的权力,允许用户输入自己的信息,然后通过这些信息对网站的一些参数进行修改,以定制网页的外观。 

在电子商务站点中实现诸如"购物篮"等功能 

可以使用cookie记录用户的ID,这样当你往"购物篮"中放了新东西时,网站就能记录下来,并在网站的数据库里对应着你的ID记录当你"买单"时,网站通过ID检索数据库中你的所有选择就能知道你的"购物篮"里有些什么。 

在一般的事例中,网站的数据库能够保存的有你所选择的内容、你浏览过的网页、你在表单里填写的信息等;而包含有你的唯一ID的cookie则保存在你的电脑里。 

cookies的缺陷 

cookie虽然被广泛的应用,并能做到一些使用其它技术不可能实现的功能。但也存在一些不够完美的方面,给应用带来不便。 

多人共用一台电脑的问题 

任何公共场合的电脑或者许多在办公室或家里使用的电脑,都会同时被两个以上的人使用。这样,当你用它在网上超市购物时,网上超市或网站会在这台机器上留下一个cookie,将来也许就会有某个人试图使用你的账户购物,带来了不安全的可能。当然,在一些使用多用户操作系统如Windows NT或UNIX的电脑上,这并不会成为一个问题。因为在多用户操作系统下不同的账户的cookie分别放在不同的地方。 
cookies被删除时 

假如你的浏览器不能正常工作,你可能会删除电脑上所有的临时Internet文件。然而,一旦这样操作以后,你就会丢掉所有的cookies文件。当你再次访问一个网站时,网站会认为你是一位新用户并分配给你一个新的用户ID以及一个新的cookie。结果将会造成网站统计的新老用户比发生偏差,而你也难以恢复过去保存的参数选择。 

一人使用多台电脑时 

有的人一天之中经常使用一台以上的电脑。例如在办公室里有一台电脑、家里有一台、还有移动办公用的笔记本电脑。除非网站使用了特别的技术来解决这一问题,否则,你将会有三个不同的cookies文件在这三台机器上,而在三台机器上访问过的任何网站都将会把你看成三个不同的用户。 

防范cookies泄密 

想知道你访问的网站是否在你的硬盘或内存中写入了cookies信息吗?只需执行下面的操作步骤,就可以了解和控制你正在访问的网站的cookies信息。 

步骤一点击IE窗口中的"工具" "In-ernet选项",打开"Internet选项"设置窗口; 

步骤二点击"Internet选项"设置窗口中的"安全"标签,然后再点击"自定义级别"按钮,进入"安全设置"窗口; 

步骤三 找到"安全设置"窗口中的"cookies"设置项。"cookies"设置项下有两个分选项,其中"允许使用存储在您计算机上的ookies"是针对存储在用户计算机硬盘中的cookies文件;"允许使用每个对话cookies(未存储)"是针对存储在用户计算机内存中的cookies信息。存储在硬盘中的cookies文件是永久存在的,而存储在内存中的cookies信息是临时的。要想IE在即将接收来自Web站点的所有cookies时进行提示,可分别选择上面两个分选项中的"提示"项。当然,你也可以选择"启用",允许IE接受所有的cookies信息(这也是IE的默认选项);选择"禁止",则是不允许Web站点将cookies存储到您的计算机上,而且Web站点也不能读取你计算机中已有的cookies。 

IE6.0提供了更为可靠的个人隐私及安全保护措施,可以让用户来控制浏览器向外发送信息的多少。在"Internet 选项"窗口中新增了"隐私"选项卡(图1),用户可以在其中直接设置浏览时的隐私级别,按需要控制其他站点对自己电脑所使用的cookies。 

如果我们正在浏览的站点使用了cookie,那么在浏览器状态栏中会有一个黄色惊叹号的标记,双击后可打开"隐私报告"对话框,用户可以在其中查看具体的隐私策略,还可直接点击"设置"按钮后在上述"隐私"选项卡中调节安全隐私级别。 

在"常规"选项卡中还增加了"删除cookies"按钮(图2),方便用户直接清除本机上的cookies。另外,在"工具" "选项" "高级"选项卡中也增加了一些进一步提高安全性的选项(如关闭浏览器时清空Internet临时文件)。其实,如何更好地保护个人隐私和安全是微软下一代".NET"战略软件中的关键技术,现在IE6.0已经尝试着迈出了第一步。 

另外,由于cookies的信息并不都是以文件形式存放在计算机里,还有部分信息保存在内存里。比如你在浏览网站的时候,Web服务器会自动在内存中生成cookie,当你关闭IE浏览器的时候又自动把cookie删除,那样上面介绍的两种方法就起不了作用,我们需要借助注册表编辑器来修改系统设置。要注意的是,修改注册表前请作备份,以便出现问题后能顺利恢复。 

运行Regedit,找到如下键值:HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Internet Settings/Cache/Special Paths/cookies,这是cookies在内存中的键值,把这个键值删除。至此cookies无论以什么形式存在,我们都不用再害怕了。 

最后有必要说明的一点是:杜绝cookies虽然可以增强你电脑的信息安全程度,但这样做同样会有一些弊端。比如在一些需要cookies支持的网页上,会发生一些莫名其妙的错误,典型的例子就是你以后不能使用某些网站的免费信箱了。 
cookies欺骗 

通过分析cookie的格式,我们知道,最后两项中分别是它的URL路径和域名,服务器对cookie的识别靠的就是这两个参数。正常情况下,我们要浏览一个网站时输入的URL便是它的域名,需要经过域名管理系统DNS将其转化为IP地址后进行连接。若能在DNS上进行一些设置,把目标域名的IP地址对应到其它站点上,我们便可以非法访问目标站点的cookie了。 

要进行cookies欺骗,其实很简单。比如在Win9X下的安装目录下,有一名为hosts.sam的文件,以文本方式打开后会看到这样的格式: 

127.0.0.1 localhost 

经过设置,便可以实现域名解析的本地化,只需将IP和域名依上面的格式添加到文件中并另存为hosts即可。hosts文件实际上可以看成一个本机的DNS系统,它可以负责把域名解释成IP地址,它的优先权比DNS服务器要高,它的具体实现是TCP/IP协议中的一部分。 

比如我们要读取的目标站点 www.abc.com 所生成的cookies信息,可以借助www.def.com(自己的站点)。www.def.com 存放用来进行欺骗所需的文件,通过它读取和修改对方的cookie。 

步骤一 pingwww.def.com 的IP地址: 

ping www.def.com 

Reply from 192.168.0.1: bytes=32 time=20ms TTL=244 

然后修改hosts.sam文件如下: 

192.168.0.1 www.abc.com 

并保存为hosts文件。 

步骤二 读取cookies信息: 

将用来读取cookie的页面传www.def.com ,此时连www.abc.com,由于我们进行本机DNS域名解析的修改,这时网络连接的并不www.abc.com,而www.def.com 。 

这www.abc.com设在本地的cookie便可被读出。 

步骤三 同样道理,你可对读出的数据进行修改,并可将修改后的信息写入cookie中。修改完毕后,删掉hosts文件,再重新进www.abc.com,此时所使用的cookies数据就是你制定的数据。 

总之,在某种程度上虽然可以实现cookies的欺骗,给网络应用带来不安全的因素,但cookies文件本身并不会造成用户隐私的泄露,也不会给攻防技术提供技术软件程序的载体,只要合理使用,它们会给网站管理员进行网站的维护和管理以及广大用户的使用都带来便利。 
cookies集合具有以下几种属性: 

1.Expires属性:此属性用来给cookies设置一个期限,在期限内只要打开网页就可以调用被保存的cookies,如果过了此期限cookies就自动被删除。如: 

设定cookies的有效期到2004年4月1日,到时将自动删除。如果一个cookies没有设定有效期,则其生命周期从打开浏览器开始,到关闭浏览器结束,每次运行后生命周期将结束,下次运行将重新开始。 

2.Domain属性:这个属性定义了cookies传送数据的唯一性。若只将某cookies传送给_blank">搜狐主页时,则可使用如下代码: 

3.Path属性:定义了cookies只发给指定的路径请求,如果Path属性没有被设置,则使用应用软件的缺省路径。 


4.Srcure属性:指定cookies能否被用户读取。 

5.Haskeys属性:如果所请求的cookies是一个具有多个键值的cookies字典,则返回True,它是一个只读属性

----------------------------------------------------------------------------------------------------------

cookie介绍 
什么是 cookie? 
cookie是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 cookie 包含的信息。 
假设在用户请求访问您的网站 www.contoso.com 上的某个页面时,您的应用程序发送给该用户的不仅仅是一个页面,还有一个包含日期和时间的 cookie。用户的浏览器在获得页面的同时还得到了这个 cookie,并且将它保存在用户硬盘上的某个文件夹中。 
以后,如果该用户再次访问您站点上的页面,当该用户输入 URL www.contoso.com 时,浏览器就会在本地硬盘上查找与该 URL 相关联的 cookie。如果该 cookie 存在,浏览器就将它与页面请求一起发送到您的站点,您的应用程序就能确定该用户上一次访问站点的日期和时间。您可以根据这些信息向用户发送一条消息,也可以检查过期时间或执行其他有用的功能。 
cookie 是与 Web 站点而不是与具体页面关联的,所以无论用户请求浏览站点中的哪个页面,浏览器和服务器都将交换 www.contoso.com 的 cookie 信息。用户访问其他站点时,每个站点都可能会向用户浏览器发送一个 cookie,而浏览器会将所有这些 cookie 分别保存。 
以上就是 cookie 的基本工作原理。那么,cookie 有哪些用途呢?最根本的用途是 cookie 能够帮助 Web 站点保存有关访问者的信息。更概括地说,cookie 是一种保持 Web 应用程序连续性(即执行“状态管理”)的方法。浏览器和 Web 服务器除了在短暂的实际信息交换阶段以外总是断开的,而用户向 Web 服务器发送的每个请求都是单独处理的,与其他所有请求无关。然而在大多数情况下,都有必要让 Web 服务器在您请求某个页面时对您进行识别。例如,购物站点上的 Web 服务器跟踪每个购物者,以便站点能够管理购物车和其他的用户相关信息。因此 cookie 的作用就类似于名片,它提供了相关的标识信息,可以帮助应用程序确定如何继续执行。 
使用 cookie 能够达到多种目的,所有这些目的都是为了使 Web 站点记住您。例如,一个实施民意测验的站点可以简单地利用 cookie 作为布尔值,表示您的浏览器是否已经参与了投票,从而避免您重复投票; 而那些要求用户登录的站点则可以通过 cookie 来确定您是否已经登录过,这样您就不必每次都输入凭据。 

cookie 的限制 
在开始讨论 cookie 的技术细节之前,我想先介绍一下 cookie 应用的几条限制。大多数浏览器支持最多可达 4096 字节的 cookie,如果要将为数不多的几个值保存到用户计算机上,这一空间已经足够大,但您不能用一个 cookie 来保存数据集或其他大量数据。在实际应用中,您可能并不希望在 cookie 中保存大量的用户信息,而只希望保存用户编号或其他标识符。之后,当用户再次访问您的站点时,您就可以使用该用户 ID 在数据库中查找用户的详细信息。(有关保存用户信息的说明,请参阅 cookie 和安全性。) 
浏览器还限制了您的站点可以在用户计算机上保存的 cookie 数。大多数浏览器只允许每个站点保存 20 个 cookie。如果试图保存更多的 cookie,则最先保存的 cookie 就会被删除。还有些浏览器会对来自所有站点的 cookie 总数作出限制,这个限制通常为 300 个。 
您最可能遇到的 cookie 限制是:用户可以设置自己的浏览器,拒绝接受 cookie。您很难解决这个问题,除非完全不使用 cookie 而是通过其他机制来保存用户相关信息。保存用户信息的一种常用方法是会话状态,但会话状态又依赖于 cookie。这一点在后面的 cookie 和会话状态中阐述。 
更一般的经验很可能是,尽管 cookie 在应用程序中非常有用,应用程序也不应该依赖于能够保存 cookie。利用 cookie 可以做到锦上添花,但不要利用它们来支持关键功能。如果您的应用程序必须使用 cookie,则您可以通过测试来确定浏览器是否接受 cookie。我在本文后面的检查浏览器是否接受 cookie 一节中简单介绍了一种测试方法。 

cookie 与安全性 
在使用 cookie 时,您必须意识到其固有的安全弱点。我所指的安全性并不是隐私问题,正如我在前面的什么是 cookie?中所述,隐私在更大程度上是某些用户面对的问题:这些用户很关心 cookie 中的信息是如何被使用的。而 cookie 的安全性问题与从客户机获取数据的安全性问题类似。对于初学者,就应用程序而言,cookie 是用户输入的另一种形式,因而很容易被他人非法获取和利用。由于 cookie 保存在用户自己的计算机上,所以用户至少可以看到您保存在 cookie 中的信息。如果用户愿意,还能在浏览器向您发送 cookie 之前修改该 cookie。 
所以,您千万不要在 cookie 中保存保密信息 - 用户名、密码、信用卡号等等。在 cookie 中不要保存不应该由用户掌握的内容,也不要保存可能被其他窃取 cookie 的人控制的内容。 
同样,要对从 cookie 中得到的任何信息都持怀疑态度。不要认为得到的数据就是您当初设想的信息。处理 cookie 值时采用的安全措施应该与处理 Web 页面中用户键入的数据时采用的安全措施相同。例如,在页面中显示值之前,我会对 cookie 中的内容进行 HTML 编码。这是一种标准的方法,可以在显示之前净化从用户处得到的信息,对 cookie 的处理与此相同。 
另一个需要关心的问题是,cookie 是以纯文本的形式在浏览器和服务器之间传送的,任何可以截取 Web 通信的人都可以读取 cookie。您可以对 cookie 的属性进行设置,使其只能在使用安全套接字层(SSL,又称 https://)的连接上传输。SSL 并不能防止保存在用户计算机上的 cookie 被他人读取或操作,但它能防止 cookie 在传输途中被他人截取。 
面对这些安全问题,如何才能安全地使用 cookie?您可以在 cookie 中保存一些不重要的数据,如用户首选项或其他对应用程序没有重大影响的信息。如果确实需要把某些敏感信息(如用户 ID)保存在 cookie 中,就对这些信息进行加密。
> >

 
 
   
 
网上赚钱申请指南
 

友情链接
个人主页
 
 
 
 

wel come to . 欢迎光临
宇宙浪仔