cookie

来源:互联网 发布:星际迷航新三部曲 知乎 编辑:程序博客网 时间:2024/05/16 07:40
 Cookie(Cookies),指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。
    Cookie总是保存在客户端中,按在客户端中的存储位置,可分为【内存Cookie】和【硬盘Cookie】.按存储时间分为【非持久Cookie】和【持久Cookie】.


【Cookie种类:】
    1. Session Cookie这个类型的cookie只在会话期间内有效,即当关闭浏览器时就会被浏览器删除。设置session cookie的办法是:在创建cookie不设置Expires即可。


  2. Persistent Cookie持久型cookie顾名思义就是会长期在用户会话中生效。当你设置cookie的属性Max-Age为1个月的话,那么在这个月里每个相关URL的http请求中都会带有这个cookie.所以它可以记录很多用户初始化或自定义化的信息,比如什么时候第一次登录及弱登录态等


  3. Secure cookie安全cookie是在https访问下的cookie形态,以确保cookie在从客户端传递到Server的过程中始终加密的。这样做大大的降低的cookie内容直接暴露在黑客面前及被盗取的概率。


  4. HttpOnly Cookie


  设置成httponly的cookie只能在http(https)请求上传递。也就是说httponly cookie对客户端脚本语言(javascript)无效,从而避免了跨站攻击时JS偷取cookie的情况。当你使用javascript在设置同样名字的cookie时,只有原来的httponly值会传送到服务器。(document.cookie 无效)


  5. 第三方cookie


  则是种植在不同于浏览器地址栏的域名下。例如:用户访问a.com时,在ad.google.com设置了个cookie.广告。


  6. Super Cookie超级cookie是设置公共域名前缀上的cookie.通常a.b.com的cookie可以设置在a.b.com和b.com,而不允许设置在。com上。


  7. Zombie Cookie僵尸cookie是指那些删不掉的,删掉会自动重建的cookie.僵尸cookie是依赖于其他的本地存储方法,例如flash的share object,html5的local storages等,当用户删除cookie后,自动从其他本地存储里读取出cookie的备份,并重新种植。
 【cookie用途】
1.会话管理
2.个性化信息,例如ptlogin会记忆上一次登录的用户的QQ号码,这样在下次登录的时候会默认填写好这个QQ号码。
3.记录用户的行为
【cookie的安全问题】
1.cookie欺骗。虽然cookie信息经过MD5方法加密,即使被别人截获也看不懂,但他们只要把别人的Cookie向服务器提交,并且能够通过验证,他们就可以冒充受害人的身份,登陆网站。


Cookie欺骗实现的前提条件是服务器的验证程序存在漏洞,并且冒充者要获得被冒充的人的Cookie信息。目前网站的验证程序要排除所有非法登录是非常困难的,例如,编写验证程序使用的语言可能存在漏洞。而且要获得别人Cookie是很容易的,用支持Cookie的语言编写一小段代码就可以实现(具体方法见三),只要把这段代码放到网络里,那么所有人的Cookie都能够被收集。如果一个论坛允许HTML代码或者允许使用Flash标签就可以利用这些技术收集Cookie的代码放到论坛里,然后给帖子取一个吸引人的主题,写上有趣的内容,很快就可以收集到大量的Cookie.在论坛上,有许多人的密码就被这种方法盗去的。至于如何防范,目前还没有特效药,我们也只能使用通常的防护方法,不要在论坛里使用重要的密码,也不要使用IE自动保存密码的功能,以及尽量不登陆不了解底细的网站。


2.Flash的代码隐患


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


【禁用浏览器cookie的办法】
用户可以改变浏览器的设置,以使用或者禁用Cookies


一、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 Settings用户名Cookies”文件夹;在Windows 98中,是“C:WindowsCookies”文件夹;


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


    4、单击“确定”按钮。


   三、注册表法


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


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


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


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


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