Cookies 简介以及存在的安全隐患

版权声明:本博客所有内容采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可 https://blog.csdn.net/Soinice/article/details/84773520

Cookies是涉及到计算机使用安全的一个非常重要的文件,本文对其基本情况及使用时需要注意的防范和安全问题进行了阐述。 

什么是Cookies

Cookie 是一个键值对(客户端)

Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等。

Cookies 是一个文件
当你在浏览网站的时候,Web服务器会先送一小段资料放在你的计算机上,Cookie 会帮你把在网页上所输入的文字或是一些选择,都记录下来。当下次你再光临同一个网站,Web服务器会先看看有没有它上次留下的Cookie资料,有的话,就会依据Cookie里的内容来判断使用者,送出特定的网页内容给你。这一小段资料就被称为Cookies。 

Cookies 是一种技术
Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。即当我们浏览某个网站时,由Web服务器放置于硬盘上的一个很小的文本文档(Cookies),它能够记录用户的ID、密码、浏览过的网页、访问次数、访问时间、停留的时间和用户进入站点的路径等信息。当我们再次来到该网站时,网站通过读取Cookies,得知我们的相关信息,就能够做出相应的动作,如在页面显示欢迎的标语,或不用我们再输入ID、密码就可以直接登录等。从本质上讲,Cookies能够看作是个人的身份证,但它不能作为代码执行,也不会传送病毒,且为个人所专有,并只能由提供它的服务器来读取。总之,网站可以通过Cookies文件记录用户的隐私,了解用户浏览的信息。 
一个网站只能取得它放在用户本人电脑中的信息,无法从其它的Cookies文档中取得信息,也无法得到用户电脑上的其它任何东西。 Cookies中的内容大多数经过了加密处理,因此一般用户看来只是一些毫无意义的字母数字组合,只有服务器的CGI处理程式才知道他们真正的含义,通过一些软件我们可以查看到更多的内容,如Cookie Pal软件等。

Cookie 的特点

Cookie内存大小受限

Cookie具有生命周期

Cookie可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问同一网站时,用户会发现不必输入用户名和密码就已经登录了(当然,不排除用户手工删除Cookie)。而还有一些Cookie在用户退出会话的时候就被删除了,这样可以有效保护个人隐私。

 Cookie在生成时就会被指定一个Expire值,这就是Cookie的生存周期,在这个周期内Cookie有效,超出周期Cookie就会被清除。有些页面将Cookie的生存周期设置为“0”或负值,这样在关闭浏览器时,就马上清除Cookie,不会记录用户信息,更加安全。

Cookie满足同源策略

虽然网站images.google.com与网站www.google.com同属于Google,但是域名不一样,二者同样不能互相操作彼此的Cookie。

问题来了 举个例子:

访问玩zhidao.baidu.com 再访问wenku.baidu.com还需要重新登陆百度账号吗?

解决办法:

设置document.domain = ‘baidu.com’;    

让页面属于这个基础域名下(那么此页面和任何二级域名为baidu.com的)

Cookie 的作用

  1. 有些网站据此统计用户信息,可以为用户实现个性化服务,比如:用户可以在不键入用户名和密码的情况下直接进入曾经浏览的某些站点;
  2. Cookies还可以加快浏览网页的速度等。 

Cookies的安全问题

用户不用害怕自己的行踪都被网站掌握,这些信息在一般情况下不会带来什么大麻烦。 不过,自己被网站悄悄跟踪实在不是件愉快的事,更何况,难免有些恶意站点通过这个“小甜饼”给用户制造点小麻烦,比如把E-mail地址等信息卖给商业网站,使用户的信箱充满垃圾邮件等。所以,随着Cookies技术与用户隐私权的矛盾日益突出,有两个 Cookies的安全问题需要引起用户的关注。 

Cookie欺骗 

Cookie记录着用户的帐户ID、密码等信息,如果在网上传递,通常使用的是MD5方法加密,这样经过加密后的信息即使被网络上一些别有用心的人截获,通常也看不懂。然而现在遇到的问题是,截获Cookie的人不需要知道这些字符串的含义,而只要把别人的Cookie向服务器提交,并且能够通过验证,他们就可以冒充受害人的身份登陆网站,这种方法叫做Cookie欺骗。Cookie欺骗实现的前提条件是服务器的验证程序存在漏洞,并且冒充者要获得被冒充的人的Cookie信息。目前网站的验证程序要排除所有非法登录是非常困难的,而且获得别人的Cookie是很容易的:用支持Cookie的语言编写一小段代码就可以实现,只要把这段代码放到网络里,那么所有人的Cookie都能够被收集。至于如何防范,目前还没有特效药,只能使用通常的防护方法,不要在论坛里使用重要的密码,也不要使用IE自动保存密码的功能,以及尽量不登陆不了解底细的网站。 

Flash的代码隐患 

Flash中有一个get URL()函数,Flash可以利用这个函数自动打开指定的网页,因此它可能把用户引向一个包含恶意代码的网站。打个比方,当你在自己电脑上欣赏精美的Flash动画时,动画帧里的代码可能已经悄悄地连上网,并打开了一个极小的包含有特殊代码的页面,这个页面可以收集你的Cookie,也可以做一些其它的事情,比如在你的机器上种植木马甚至格式化你的硬盘等等。对于Flash的这种行为,网站是无法禁止的,因为这是Flash文件的内部行为。因此,对于用户来说,如果是在本地浏览尽量打开防火墙,如果防火墙提示向外发送的数据包并不为你知悉,最好禁止;如果是在Internet上欣赏,最好找一些知名的大网站。

如何防范Cookies中信息被利用

Cookies文件是在无声无息中伴随浏览器进入我们本地硬盘的,当我们浏览某个站点时,该站点非常可能将记录我们隐私的Cookies文件上传到本地硬盘。那么我们该怎么防范阻止Cookies文件泄露我们的隐私呢?有多种方法可供借鉴。 
第一种是:

方法通过浏览器设置拒绝计算机接收Cookies文件即可。进入系统打开IE浏览器,通过菜单栏中的“工具→Internet选项”打开Internet设置窗口,找到“隐私”标签,将设置的滑动按钮调节到最高,这样将阻止来自所有网站的Cookie,而且计算机上的现有Cookie文件都将不能被网站读取,完成设置,所有站点都不会将Cookie文件强制塞入我们的计算机,我们的隐私也不会再泄露了。 
第二种是:

每次下网时,将所有的Cookies文件删除。打开浏览器,在菜单栏上单击“工具→Internet选项”,在“常规”选项卡中有个“Internet临时文件”项,点击“删除Cookies”按钮,就能把浏览器中所有的Cookies全部删除掉。点击“设置”按钮,通过“查看文件”,找出在你的电脑里留下了Cookies的网站,把那些不希望留下的Cookies删除。为了不再让讨厌的Cookies再出现在电脑中,那么最好自己设置一下,选中“隐私”选项卡,拖动滑块,可对Cookies作6种设置,从照单全收,到全盘拒之,让你自由做主。还有一些特殊Cookie不是以文本文件形式存在,而是保存在内存中,这类Cookie通常是用户在访问某些特殊网站时,由系统自动在内存中生成,一旦访问者离开该网站又自动将Cookie从内存中删除。这种情况下上述两法对这些 Cookie就无能为力了,而“注册表法”可以弥补这些不足。单击“开始”菜单,再单击“运行”,然后在“打开”框中键入“regedit”,单击“确定”按钮,打开“注册表编辑器”窗口;依次展开“HKEY→LOCAL→MACHINE→SOFTWARE→Microsoft→Windows→Current Version→Internet Settings→Cache Special Paths→Cookies”分支,右键单击“Cookies”,然后单击快捷菜单中的“删除”命令,当系统提示确认删除时,请单击“是”按钮后关闭“注册表编辑器”窗口。 
除了如上所述手动进行设置外,还有一个简便的方法是安装软件来保护用户的Cookie文件,这类软件比较多,可以到各大软件下载站点去下载。

猜你喜欢

转载自blog.csdn.net/Soinice/article/details/84773520