Cookie的传递流程及安全问题

编者按:Cookie在英文中是小甜品的意思,而这个词我们总能在浏览器中看到,食品怎么会跟浏览器扯上关系呢?在你浏览以前登陆过的网站时可能会在网页中出现:你好XX,感觉很亲切,就好像是吃了一个小甜品一样 。这其实是通过访问你主机里边的一个文件来实现的,因此这个文件也就被称为了Cookie 。想全面了解Cookie吗?看看下文吧!
一、了解Cookie 适用对象:初级读者
Cookie是当你浏览某网站时,网站存储在你机器上的一个小文本文件,它记录了你的用户ID,密码、浏览过的网页、停留的时间等信息,当你再次来到该网站时,网站通过读取Cookie,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等 。你可以在IE的“工具/Internet选项”的“常规”选项卡中,选择“设置/查看文件”,查看所有保存到你电脑里的Cookie 。这些文件通常是以user@domain格式命名的,user是你的本地用户名,domain是所访问的网站的域名 。如果你使用NetsCape浏览器,则存放在“C:PROGRAMFILESNETSCAPEUSERS”里面,与IE不同的是,NETSCAPE是使用一个Cookie 文件记录所有网站的Cookies 。
为了保证上网安全我们需要对Cookie进行适当设置 。打开“工具/Internet选项”中的“隐私”选项卡(注意该设置只在IE6.0中存在,其他版本IE可以在“工具/Internet选项”的“安全”标签中单击“自定义级别”按钮,进行简单调整),调整Cookie的安全级别 。通常情况,可以将滑块调整到“中高”或者“高”的位置 。多数的论坛站点需要使用Cookie信息,如果你从来不去这些地方,可以将安全级调到“阻止所有Cookies” 。如果只是为了禁止个别网站的Cookie,可以单击“编辑”按钮,将要屏蔽的网站添加到列表中 。在“高级”按钮选项中,你可以对第一方Cookie和第三方的Cookie进行设置,第一方Cookie是你正在浏览的网站的Cookie,第三方Cookie非正在浏览的网站发给你的Cookie,通常要对第三方Cookie选择“拒绝”,如图1 。你如果需要保存Cookie,可以使用IE的“导入导出”功能,打开“文件/导入导出”,按提示操作即可 。
Cookie中的内容大多数经过了加密处理,因此在我们看来只是一些毫无意义的字母数字组合,只有服务器的CGI处理程序才知道它们真正的含义 。通过一些软件我们可以查看到更多的内容,使用Cookie Pal软件查看到的Cookie信息,如图2所示 。它为我们提供了Server、Expires、Name、Value等选项的内容 。其中,Server是存储Cookie的网站,Expires记录了Cookie的时间和生命期,Name和value字段则是具体的数据(本报第10期第42版对该软件有详细介绍) 。

二、Cookie的传递流程 适用对象:中级读者
当在浏览器地址栏中键入了一个Web站点的URL,浏览器会向该Web站点发送一个读取网页的请求,并将结果在显示器上显示 。这时该网页在你的电脑上寻找Amazon网站设置的Cookie文件,如果找到,浏览器会把Cookie文件中的数据连同前面输入的URL一同发送到Amazon服务器 。服务器收到Cookie数据,就会在他的数据库中检索你的ID,你的购物记录、个人喜好等信息,并记录下新的内容,增加到数据库和Cookie文件中去 。如果没有检测到Cookie或者你的Cookie信息与数据库中的信息不符合,则说明你是第一次浏览该网站,服务器的CGI程序将为你创建新的ID信息,并保存到数据库中 。
Cookie是利用了网页代码中的HTTP头信息进行传递的,浏览器的每一次网页请求,都可以伴随Cookie传递,例如,浏览器的打开或刷新网页操作 。服务器将Cookie添加到网页的HTTP头信息中,伴随网页数据传回到你的浏览器,浏览器会根据你电脑中的Cookie设置选择是否保存这些数据 。如果浏览器不允许Cookie保存,则关掉浏览器后,这些数据就消失 。Cookie在电脑上保存的时间是不一样的,这些都是由服务器的设置不同决定得 。Cookie有一个Expires(有效期)属性,这个属性决定了Cookie的保存时间,服务器可以通过设定Expires字段的数值,来改变Cookie的保存时间 。如果不设置该属性,那么Cookie只在浏览网页期间有效,关闭浏览器,这些Cookie自动消失,绝大多数网站属于这种情况 。通常情况下,Cookie包含Server、Expires、Name、Value这几个字段,其中对服务器有用的只是Name和Value字段,Expires等字段的内容仅仅是为了告诉浏览器如何处理这些Cookies 。

推荐阅读