`
yangmeng_3331
  • 浏览: 91258 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

HTTP协议(七):Cookie

 
阅读更多
本文转自:http://www.cnblogs.com/TankXiao/archive/2013/04/15/2848906.html
Cookie是什么,有什么用,为什么要用到Cookie
请看Fish Li 写的【细说Cookie
Cookie的分类
可以大致把Cookie分为2类: 回话cookie和持久cookie
会话cookie: 是一种临时的cookie,它记录了用户访问站点时的设置和偏好,关闭浏览器,会话cookie就被删除了
持久cookie: 存储在硬盘上,(不管浏览器退出,或者电脑重启,持久cookie都存在), 持久cookie有过期时间
Cookie存在哪里
Cookie是存在硬盘上,  IE存cookie的地方和Firefox存cookie的地方不一样。  不同的操作系统也可能存cookie的地方不一样。
不同的浏览器会在各自的独立空间存放Cookie, 互不干涉
以我的windows7, IE8为例,  cookie存在这: C:\Users\xiaoj\AppData\Local\Microsoft\Windows\Temporary Internet Files
注意: 缓存文件和cookie文件,是存在一起的, 都在这个目录下。
你也可以这样找, 打开IE,点击Tools->Internet Options->General Tab下的->Browsing history下的Setting按钮,弹出的对话框中点击View files.

不同的网站会有不同的cookie文件

使用和禁用Cookie
IE:   工具->Internet 选项 -> 隐私

Fiddler查看HTTP中的Cookie
浏览器把cookie通过HTTP Request 中的“Cookie: header”发送给Web服务器
Web服务器通过HTTP Response中的"Set-Cookie: header"把cookie发送给浏览器
使用Fiddler可以清楚地看到cookie在HTTP中传递。 Fiddler工具中可以清晰的看到Http Request 中的Cookie, 和Http Response中的cookie 
实例: 启动Fiddler,  启动浏览器访问一些购物网站,就可以看到。

网站自动登陆的原理
我们以”博客园自动登陆“的例子,来说明cookie是如何传递的。
大家知道博客园是可以自动登陆的。 如下图,这个是什么原理呢?

假如我已经在登陆页面输入了用户名,密码,选择了保存密码,登陆。
(这时候,其实在你的机器上保存好了登陆的cookie, 不信你可以按照上节介绍方法去你的电脑上找下博客园的cookie) 
当我下次访问博客园流程如下。
1. 用户打开IE浏览器,在地址栏上输入www.cnblogs.com.
2. IE首先会在硬盘中查找关于cnblogs.com的cookie. 然后把cookie放到HTTP Request中,再把Request发给Web服务器。
3. Web服务器返回博客园首页(你会看到你已经登陆了)。

截获Cookie,冒充别人身份
通过上面这个例子,可以看到cookie是很重要的,识别是否是登陆用户,就是通过cookie。  假如截获了别人的cookie是否可以冒充他人的身份登陆呢?  当然可以, 这就是一种黑客技术叫Cookie欺骗。
利用Cookie 欺骗, 不需要知道用户名密码。就可以直接登录,使用别人的账户做坏事。
我知道有两种方法可以截获他人的cookie,
1. 通过XSS脚步攻击, 获取他人的cookie. 具体原理可以看 [Web安全性测试之XSS]
2. 想办法获取别人电脑上保存的cookie文件(这个比较难)
拿到cookie后,就可以冒充别人的身份了。 这个过程我就不演示了。
Cookie和文件缓存的区别
很多人会把cookie和文件缓存弄混淆, 这两个完全是不一样的东西。唯一的相同之处可能是它们俩都存在硬盘上,而且是存在同一个文件夹下。
关于HTTP缓存请看这 【HTTP协议之缓存
我们在IE中可以选择分别删除Cookie和缓存文件

Cookie 泄露隐私
2013年央视的315晚会上, 曝光了很多不法公司利用Cookie跟踪并采集用户的个人信息,并转卖给网络广告商,形成了一条窃取用户信息的灰色产业链。从而实现广告准确投放。严重干扰了用户的正常网络应用,侵害了个人的隐私和利益。
我经常就在门户网站上发现广告位上显示的是我在电商网站上流量过的商品。  这就是我的cookie被泄露了。
目前在欧洲, 已经对Cookie立法, 如果网站需要保存用户的cookie, 必须弹出一个对话框,要用户确认后才能保存Cookie.
P3P协议
从上面看来, Cookie 是一个比较容易泄露用户隐私和危险的东西。  有没有办法保护个人用户隐私呢?    那就是P3P协议
P3P是一种被称为个人隐私安全平台项目(the Platform for Privacy Preferences)的标准,能够保护在线隐私权,使Internet冲浪者可以选择在浏览网页时,是否被第三方收集并利用自己的个人信息。如果一个 站点不遵守P3P标准的话,那么有关它的Cookies将被自动拒绝,并且P3P还能够自动识破多种Cookies的嵌入方式。p3p是由全球资讯联盟网 所开发的。


分享到:
评论

相关推荐

    HTTP Cookie 协议管理标准分析以及结构实现

    Set-Cookie: name=value; expires=xxx,xxx,xxxxxxxxxx; path=/xxx; domain=xxxxx; secure ``` - **name=value**:这是Cookie的名字和值。其中`name`是任意字符,而`value`也是任意字符。需要注意的是,如果`name=;`...

    Ftp协议:RFC959和HTTP协议:RFC2616

    FTP(File Transfer Protocol)协议和HTTP(Hypertext Transfer Protocol)协议是互联网上两种重要的通信协议,它们分别在文件传输和网页浏览方面扮演着关键角色。FTP协议的规范定义在IETF(Internet Engineering ...

    http.rar_HTTP ppt_HTTP协议_http://brow

    在我们的主题“http.rar_HTTP ppt_HTTP协议_http://brow”中,我们可以深入探讨HTTP协议的特点及其在网页浏览中的作用。 1. 浏览器/服务器模式: HTTP协议采用的是客户端-服务器模型。在这个模型中,客户端(通常...

    黑马程序员_PHP_课程同步笔记day39:cookie介绍 .docx

    为了解决这个问题,Cookie应运而生,它在HTTP协议的无状态特性上提供了一个补救措施。 在Session出现之前,Cookie几乎是所有网站进行会话跟踪的标准手段。Cookie最初由W3C组织提出,并由Netscape社区进一步发展,...

    cookie机制

    Cookie机制是HTTP协议中用于维护会话状态的客户端解决方案。它允许服务器在客户端(通常是浏览器)上存储与特定会话相关的信息。这些信息随后会在用户访问服务器时被自动发送,从而允许服务器识别用户并提供个性化的...

    HTTP访问(带Cookie)模块.rar

    1. 设置Cookie:服务器通过HTTP响应头的Set-Cookie字段向客户端发送Cookie。例如: ``` Set-Cookie: sessionID=123456; Path=/; HttpOnly; ``` 这将设置一个名为sessionID的Cookie,值为123456,有效路径为服务器根...

    HTTP/http协议中文手册

    - Cookie/Set-Cookie:用于管理客户端和服务器之间的会话状态。 4. HTTP协议版本: - HTTP/1.0:早期版本,不支持持久连接,每个请求/响应都建立新的TCP连接。 - HTTP/1.1:增加了持续连接,可以复用TCP连接,...

    根据http获取cookie内容代码

    总之,获取HTTP报文头中的Cookie内容涉及HTTP协议的理解、网络库的使用(或自定义实现)以及报文头的解析。通过学习和实践,你将能够熟练地在C++中处理网络通信中的Cookie管理,从而更好地开发Web应用程序或服务。...

    易语言取设cookie

    Cookie是在HTTP协议下,服务器发送到用户浏览器并保存在本地的一小块数据,它用于记录用户的浏览历史、登录状态等信息。在易语言中,处理Cookie主要有两个关键函数:`InternetSetCookieA` 和 `InternetGetCookieA`。...

    计算机后端-PHP视频教程. http协议11 http协议与cookie.wmv

    计算机后端-PHP视频教程. http协议11 http协议与cookie.wmv

    练习2:使用Cookie简化用户登录.zip

    例如,在Java中,可以通过以下代码创建一个Cookie: ```java Cookie cookie = new Cookie("username", "JohnDoe"); cookie.setMaxAge(60 * 60 * 24); // 24小时后过期 response.addCookie(cookie); ``` 三、登录...

    Cookie浏览器

    Cookie浏览器是一种特殊的网络浏览工具,它利用了HTTP协议中的Cookie技术来实现特定功能,如网页登录绕过和邮箱免登录。Cookie是Web服务器在用户浏览器上存储的一小段数据,用于识别用户身份、保持登录状态、个性化...

    易语言HTTP访问(带Cookie)模块源码

    1. **HTTP请求**:HTTP请求是由客户端发起,向服务器端发送数据请求的一种通信方式。常见的请求方法有GET、POST等,GET用于获取资源,POST用于提交数据。在易语言中,该模块提供了一种简便的接口,使得开发者可以...

    cookie读写,子cookie

    1. 添加Cookie:接收键值对和相关属性作为参数,创建并添加Cookie到响应。 2. 获取Cookie:根据键从请求中查找Cookie,并返回其值。 3. 更新Cookie:修改已存在Cookie的值或属性。 4. 删除Cookie:设置Cookie的过期...

    cookie产生与认证

    3. 发送Cookie:生成的Cookie会被封装在一个HTTP Set-Cookie响应头中,并发送给客户端(通常是用户的浏览器)。浏览器接收到这个响应后,会存储这个Cookie,并在后续对同一域的请求中自动附带Cookie信息。 4. 用户...

    Cookie属性及操作大全

    2. 读取Cookie:浏览器自动在每个HTTP请求头的Cookie字段中发送所有相关Cookie。 3. 更新Cookie:通过设置相同名称的新Cookie来更新现有Cookie的值或属性。 4. 删除Cookie:通过设置过期时间为过去的时间来删除...

    cookie 文档

    Cookie最初由Netscape公司在开发HTTP协议时引入,用于处理状态管理问题,弥补HTTP协议无状态的特性。 1. **Cookie的工作原理** - **设置Cookie**: 服务器在响应头中包含Set-Cookie字段,将信息发送给浏览器。 - *...

Global site tag (gtag.js) - Google Analytics