什么是Cookie。Cookie的原理介绍,Cookie的简单应用

1 介绍:Cookies亦称Cookie 。Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。当你再次来到该网站时,网站通过读取Cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。 从本质上讲,它可以看作是你的身份证。但Cookies不能作为代码执行,也不会传送病毒,且为你所专有,并只能由提供它的服务器来读取。保存的信息片断以"名/值"对(name-value pairs)的形式储存,一个"名/值"对仅仅是一条命名的数据。一个网站只能取得它放在你的电脑中的信息,它无法从其它的Cookies文件中取得信息,也无法得到你的电脑上的其它任何东西。

Cookies中的内容大多数经过了加密处理,因此一般用户看来只是一些毫无意义的字母数字组合,只有服务器的CGI处理程序才知道它们真正的含义。

由于Cookies是我们浏览的网站传输到用户计算机硬盘中的文本文件或内存中的数据,因此它在硬盘中存放的位置与使用的操作系统和浏览器密切相关。在Windows 9X系统计算机中,Cookies文件的存放位置为C:WindowsCookies,在Windows NT/2000/XP的计算机中,Cookies文件的存放位置为C:Documents and Settings用户名Cookies。 硬盘中的Cookies文件可以被Web浏览器读取,它的命令格式为:用户名@网站地址[数字].txt。如笔者计算机中的一个Cookies文件名为:ch@163[1].txt。要注意的是:硬盘中的Cookies属于文本文件,不是程序。

2 实用价值:我们登录各式各样的网站,淘宝,邮箱,网盘等等,服务器都会向本地的某个文件夹写入Cookie信息,最常见的莫过于下面两幅图,当我们勾选了类似于"两周内免登陆"的选框时候,就会写入一个有效期为两周的Cookie,当我们下次再登陆淘宝网的时候,对方的服务器就会先检测你的Cookie还有多少天过期。如果到期了,则会要求重新输入账号密码,否则就可以直接登录。当然就算我们不勾选,还是会写入Cookie信息,只不过这个Cookie信息的有效期是浏览器的进程,浏览器关闭这个Cookie就自动过期,再次打开浏览器又要再次输入密码。我们肯定不想重复无数次在自己的电脑上浪费时间输入自己的用户名和密码(很多不常用的账号密码甚至过了一段时间连用户名都忘了,更不用说密码了)。所以用好Cookie第一个用处就是帮助我们减少重复劳动,免除一次一次的输密码的麻烦和记不住用户名和密码的烦恼。

此外,既然Cookie保存的是账号和密码,如果我们想偷窥别人的用户名和密码呢?当然也可以通过Cookie。有一个很简单的原理,大家虽然注册不同的网站,但是用的用户名和密码一般是相同的(让你一个网站记住一个用户名和密码你记得住吗?)所以只要你看到了一个,别的大体上都一样。这样所谓的"黑客"就练成了。只要能得到别人电脑的Cookie,就可以知道别人在某个网站留下的用户名和密码是啥,以此类推,你还猜不出别的网站的密码吗?可能只有银行卡密码会有所不同吧。

淘宝的"两周内免登陆"

163邮箱的"两周内自动登录"

3 实战操作:先来具体了解一些到底什么是Cookie。我们先使用IECookiesView打开这个软件,点击在资源管理器中打开Cookie文件夹,会发现一些TXT的文件。

其实这些就是各个网站写在你电脑里的Cookie,Cookie过了有效期就会自动删除,打开这些TXT文件,会发现一些类似于乱码的东西(根本找不到和"两周"有关的数据),其实这个是被加密或者转义过的代码,所以无法直接浏览和编辑(要是这么简单得到账号密码那还了得?)。但是明白这点就好,Cookie没有那么神秘,他只是一个个的TXT文本文件,用来存放你在对应网站上的账号密码和有效期的。

4 为了做测试,我们先把所有原有的Cookie都删掉(可以直接进入到Cookie存放的文件夹手动删除,也可以在这个软件里操作删除,删除之后按F5刷新,最后剩下一个Cookie无法删除(提示为"index.dat"什么什么),其实index.dat还是一个很有意思的文件,详情查看本文最后对index.dat的介绍,这里保留即可,不是一定要删除。),再登陆一个网站看会发生什么结果。

注意网站即使不登陆也会被写入Cookie。下面只是打开了百度和谷歌的首页,就写入了三个Cookie。

这些Cookie打开之后还是乱码

我还没有登录163邮箱之前

登录了邮箱之后(先不勾选"两周内自动登录")

马上多出了一个新的Cookie文件。从下面列出了的东西中可以看出短短的一个登陆过程,163邮箱把我的City,Province都得到了(换句话说就像QQ显IP一样我被记录下了自己在哪儿了,不过注意每个键都有失效时期,待会儿我们要改的就是这个)

意外收获:可恶的搜狗输入法不干好事,偷偷让我在后头点击了wubi.sogou.com这个网址二十次!!!其实我根本不会用五笔,更不用说去点这个网站二十次了,估计所有装搜狗输入法的人都会被迫贡献自己的IP吧,这真是一笔可怕的点击量啊。至于是不是别人干的,估计不会,搜狗五笔点击率高了估计只有搜狐公司高兴,别人不会去做这样的事情的。

过了一会儿,搜狗又点击了sohu.com六次,sogou.com十四次,看来我有必要装搜狗的绿色精简版了。需要注意的是,这个软件爱你的点击数并不准确,如果我手动刷新一个网址十次,那么再次刷新这个软件的窗口,点击数并不一定会增加十次,甚至可能根本不变。

这个软件的缺点还在于无法准确的查到数据和修改数据(虽然有那么多的Cookie,但是对我有用的信息应该就那么三条,用户名,密码,有效期)但是我们如果登录了淘宝,却无法找到可以修改这三样数据的地方。

相比之下,就要介绍下面这一个应用于火狐的Cookies Manager+插件。同样先删除所有的Cookie,然后登录淘宝,直接在搜索框中输入我的用户名acetaohai 则就弹出了对应的Name。名字居然是_nk_和tracknick,取这么怪的名字应该是出于安全性考虑,不能让别人随便猜到。

再看一个网站,Verycd。我登陆之后同样输入用户名(只要前面几个字符匹配即可)得到用户名的名称是member_name,可见Verycd还是把Cookie的各个名称做的挺合理的。

此外还有pass_hash(估计是对密码的hash加密值,还有rememberme,一看就知道是"记住我"是否被勾选的变量)而不论网站采用的是何种加密方法,我们一般人无从得知真实的密码(除非这个网站对发送过来的账号密码根本不处理,而这只有钓鱼网站才这么干,正规网站都有自己的一套加密方法)

说到这里,我们还是没有解决上面的两个问题,第一个:保存自己的Cookie,不要再输入密码。第二个:能不能看别人的密码。

现在解决第一个问题,能不能保存自己的Cookie。刚才介绍的两个软件一个只能用于火狐,局限性太大,一个根本不知道要修改哪个数据,用户体验做的很不好。现在看第三款软件,My Cookie。My Cookie提供的地址栏直接输入网址即可,下方会自动显示网页,就和浏览器一样,不同的是Cookie区域会显示对应网站的Cookie

软件由工具栏、地址栏、Cookie信息栏以及网页内容栏四部分组成。我们在地址栏输入www.taobao.com即可在下方的网页内容栏得到淘宝网的网页。Cookie信息栏有一部分是我们不需要用到的,等登录了之后这部分信息会更多,因此可以通过对比登录前和登陆后的Cookie多了哪些键来判断哪些是我们需要永久保留的Cookie,哪些与我们无关。

工具栏:前进、后退、刷新、停止和IE浏览器中的含义一样,在这就不罗嗦了。

空行数:在Cookie栏内除显示Cookie内容外,另外多加的空行,可以用来添加新Cookie数据。注意,当输入完空行数后,一定要按回车,否则输入无效。

过滤:当出现同名的数据时,后面的将不发生作用。通过选中过滤功能,可以不显示同名数据。

清除:将所有数据标记为"删除"。需要按保存才能真正删除。

保存:将修改后的数据存入Cookie内。注意:如果在变换了网页内容后,如果没有保存,修改的数据将全部无效。

Cookie栏:显示浏览器Cookie数据的地方。前面三列显示数据,当使用Cookie子关键值(CookieSubName)的时,类似

Response.Cookies("Person")("name")="Ken"

Response.Cookies("Person")("age")="20"

将按如下格式显示

Person name Ken  

= age 20  

注意其中的"="号。如果要添加

Response.Cookies("Person")("sex")="1"

则可以这样写:

Person name Ken  

= age 20  

= sex 1  

然后按保存,就可以将sex添加到Cookie里面去。

第四列的功能是对每行进行操作,包括删除、永久保存,不保存。

如果选择不保存,退出浏览器后Cookie将被浏览器自动删除。

对于子关键值,除了删除可以删除其中一项外,其他操作将是对整个数据操作。

通过永久保存功能,如果网站不是通过Session验证的,那基本上你登录一次后,以后就不需要登录。

登陆之后Cookie栏多了一些名值对。我们只需要把这些数据永久保存即可。

点击了永久保存之后再点击保存按钮

可以发现系统的Cookie文件夹多了一个淘宝的Cookie文件(可以先清空Cookie文件夹再执行保存)。

6 再次在IE浏览器中输入网址,发现即使这样,在需要交易的时候还是无法实现自动登录,不再输入密码。因为淘宝的"两周内不再登陆"只是对于淘江湖,打听等等那些不涉及金融安全的版块不需要再次验证密码,只要Cookie通过了就完事了,但是当进行交易或者其他涉及金融安全的操作的问题时,系统还是需要再次输入密码确保安全。这样,我们的Cookie就无能为力了,所以第一个设想基本泡汤(至少淘宝已经无法实现了,因为他并不认为Cookie没过期就不要输密码,这也是为什么即使我们勾选了两周内免登陆,并且关闭浏览器再次打开并输入www.taobao.com的时候还可以直接跳出来我们的用户名的首页,但是当点击了顶部的"我的淘宝"的时候就退回到了登陆界面要求输入密码)。再看看163邮箱,我们还是无从得知到底哥哥变量名代表什么,即使知道,也不能解密后面的变量值还原成原来的东西,因为我们不知道加密方式(除了那些没加密的Province和City)这样,想要盗取别人账号密码的想法也只能扑空了,因为就算知道加密方式,解密也不是我们这种微型计算机三天两天可以破解的。

综上所示,想用Cookie干点自己的事情还是比较困难的,除非你是这个网站内部的工作人员,否则难以知道加密和解密途径。还是老老实实输账号密码吧,即使是无忧登录这样的软件,其实问题也是不少的。

关于index.dat文件。

index.dat是一个具有"隐藏"属性的文件,它记录着通过浏览器访问过的网址、访问时间、历史记录等信息。实际上它是一个保存了cookie、历史记录和IE临时文件中所记录内容的副本,即使你在IE中把这些内容都清除了,但index.dat文件中的记录还是存在。

在Windows XP系统中的"Documents and Settings<Username>Cookies"、" Documents and Settings<Username>Local SettingsHistoryHistory.IE5"、" Documents and Settings<Username>Local Internet FilesContent.IE5"等文件夹中都存在着index.dat文件。

系统为了保密是不会让你直接看到这些地方的index.dat文件的,就算你在文件夹选项中设置成了让系统显示所有文件和不隐藏受操作系统保护的文件,也同样看不到也搜索不到它们(当然使用Everything软件还是可以搜到的)。你可以试着进入IE的临时文件夹"Temporary Internet Files",但在窗口地址栏的"Temporary Internet Files"后面手工加上"Content.IE5",便能发现该文件夹下面居然还有别的文件和文件夹,index.dat文件也是其中之一。虽然可以搜到,但是这个文件还是屏蔽了鼠标右击

打开之后也是乱码

当我们浏览了相当多的网站后,这个文件的体积会越来越大,从数十KB增加到几十MB。

即使用户在IE中执行"删除脱机文件"、"清除历史记录"、"清除表单"等操作,在上述位置的index.dat文件也不会被删除。更让人恼火的是,如果你试图进入上述位置想人工删除它,系统会毫不客气地警告你"无法删除index:文件正被另一个人或程序使用。"倒底谁在使用这个文件呢?答案就是系统自己。就算你重新启动系统且不打开任何程序窗口,同样无法用常规方法删除它。

(二)窥探你的上网记录

前面说过,即使在IE中执行了相关清理操作,index.dat文件中同样会保留着相关的网址信息,那么,如何通过这个文件来了解曾经造访过的网站呢?

要查看index.dat中的内容,我们可借助第三方软件来实现,如"INDEX.DAT Files Viewer"。

启动软件后,经过数秒钟的检索,它已经在窗口中显示出了以前的浏览记录-----网址和访问时间等信息都赫然在列。选中某个链接,还会在窗口右下方显示相关内容!

(三)清除index.dat中的"内容"

对于这个极可能泄露个人上网行为习惯的index.dat文件,很显然是不能被直接删除的,因为只要你登陆系统,隶属于你的账户下的此文件便会被系统使用。那么,真没办法赶走它吗?非也!这里提供两种方法。

1.在纯DOS模式下删除

如果你的Windows XP安装在FAT32分区中,则可利用启动光盘引导系统到纯DOS模式下(不是Windows XP的命令提示符窗口),然后进入index.dat所在目录中,用DEL命令来删除它,不过由于这个文件分散比较凌乱,因此有点麻烦。

注意:由于C:Documents and Settings等是长文件名,所以要转换为8.3格式才能正常进入目录。

2.用Tracks Eraser Pro来删除(这里不做演示了,只介绍方法,因为毕竟普通人没这么多秘密,就算看了几个片又如何?)

手动进入各文件夹"干掉"index.dat文件肯定比较麻烦,再说了,如果系统没有安装在FAT32分区上就更不好办。最简单的方法还是使用专用的文件来完成这一"艰巨任务"。

虽然声称能删除index.dat的软件很多,但是,经过我多次测试,发现真正能有效删除index.dat中记录的上网痕迹的软件还是Tracks Eraser Pro,其他很多软件都有些夸大其辞,执行清除后使用前面介绍的"INDEX.DAT Files Viewer"仍然可以看到以前曾访问过的网址。

在Tracks Eraser Pro中,先单击"Eraser Settings"按钮进行设置,重点是检查IE标签下的项目设置(最好全选),尤其要确保勾选中"index.dat"。

单击"OK"后回到主界面,点"Erase Now"按钮。很快,软件将根据设置清理你的上网痕迹。

清理之后不妨测试一下效果:重新打开"INDEX.DAT Files Viewer"让它自动扫描。结果,软件忙碌了半天,在窗口中什么也不会列出来。和执行清理之前相比,你现在可以更放心了!

原文地址:https://www.cnblogs.com/acetaohai123/p/6571540.html