`

HTTP协议 (七) Cookie

 
阅读更多

Cookie是HTTP协议中非常重要的东西, 之前拜读了Fish Li 写的【细说Cookie】, 让我学到了很多东西。Fish的这篇文章写得太经典了。 所以我这篇文章就没有太多内容了。 

最近我打算写一个系列的HTTP文章,我站在HTTP协议的角度, 说说我对Cookie的理解。

 

阅读目录

  1. Cookie是什么,有什么用,为什么要用到Cookie
  2. Cookie的分类
  3. Cookie存在哪里
  4. 使用和禁用Cookie
  5. Fiddler查看HTTP中的Cookie
  6. 网站自动登陆的原理
  7. 截获Cookie,冒充别人身份
  8. Cookie和文件缓存的区别
  9. Cookie泄露隐私
  10. P3P协议

 

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、session超详细笔记整理,一篇就够了

    HTTP协议、cookie、session超详细笔记整理,一篇就够了

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

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

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

    介绍Cookie的基本原理,服务器、客户端针对Cookie的使用; 讲述自己实现Cookie 管理器应该使用的方式,以及存储Cookie的结构说明。

    HTTP协议分析报告

    (1) HTTP超文本传输协议用于定义web页面(超文本)在网络上的交互方式的应用层协议,使用客户/服务器的工作方式。HTTP协议定义了web客户端(浏览器)如何向web站点请求web网页以及web服务器如何将web页传送给客户...

    对Cookie及http协议的理解

    目录一、HTTP协议二、Cookie1.Cookie概念2.Cookie特点3.Cookie使用①添加②读取③修改④失效⑤删除⑥设置域名、路径 一、HTTP协议  1、HTTP协议,即超文本传输协议(HyperText Transfer Protocol)是互联网上应用...

    大神总结的HTTP协议详解手册

    大神总结的HTTP协议详解手册 HTTP 协议是 HyperText Transfer Protocol 的缩写,是一种应用层协议,用于从万维网(World Wide Web)服务器传输超文本到本地浏览器的协议。下面是对 HTTP 协议的详细解释: 一、HTTP...

    Web应用安全:HTTP协议习题.docx

    本资源摘要信息主要涵盖了Web应用安全中的HTTP协议习题,涉及到HTTP请求和响应模型、HTTP请求方法、HTTP消息类型、HTTP状态码、Cookie安全隐患、URL编码、HTTPS访问过程、Cookie的作用等知识点。 一、HTTP请求和...

    HTTP协议学习心得体会[参考].pdf

    HTTP 协议学习心得体会 概述: HTTP 协议(HyperText Transfer Protocol)是 TCP/IP 协议集中的一个应用层协议,用于定义浏览器和 Web 服务器之间交换数据的过程以及数据本身的格式。HTTP 协议是无状态的,通信过程...

    cookie&amp.pdf

    深入理解Servlet/JSP之“Cookie和Session原理” 由于HTTP协议的无状态特征,Web应用中经常使用Cookie和Session来保存用户在与系统交互过程中的状态数据。下面通过分析HTTP协议对Cookie和Session的工作原理加以了解。

    HTTP协议调试器

    中文:HTTP协议调试器英文:Http/Https Protocol Debuger版权:电猫工作室(EMouze)1.支持HTTP和HTTPS(SSL加密)网络协议的跟踪和调试。2.可以查看到HTTP/HTTPS协议连接的详细过程和返回结果。3.允许GET/POST/HEAD/PUT...

    python爬虫HTTP协议剖析

    Python爬虫HTTP协议剖析 Python爬虫HTTP协议剖析是指使用Python语言编写的爬虫程序来分析和解析HTTP协议的工作机制。HTTP协议是目前最流行的网络协议之一,广泛应用于网页浏览、网络爬虫、API接口等领域。 HTTP...

    计算机网络-基础知识及Http协议

    Cookie是HTTP协议中的一种机制,用于存储客户端和服务器端的信息。Cookie结构中包含四个方面:请求首部行中的Cookie、响应首部行中的Set-Cookie、客户端的Cookie文件和服务器端的后台数据库。 条件GET方法是一种...

    Fiddler是一个http协议调试代理工具

    Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。 Fiddler 要比其他的网络调试器要更加简单...

    post提交工具/cookie提交工具(php版,同时支持POST与cookie)

    想使用POST工具。网上下载的试了几个都不太好用。 于是做一个PHP版的。 自已用的放到PHP环境下。 使用上不方便的可以与我交流

    JD cookie一键获取脚本,基于JavaScript

    jdcookie.js下载 JD cookie一键获取脚本,基于JavaScript jdcookie.js下载 JD cookie一键获取脚本,基于JavaScript jdcookie.js下载 JD cookie一键获取脚本,基于JavaScript jdcookie.js下载 JD cookie一键获取脚本...

    SYN Cookie原理及在Linux内核中的实现

    在目前以IPv4为支撑的网络协议上搭建的网络环境中,SYN Flood是一种非常危险而常见的DoS攻击方式。到目前为止,能够有效防范SYN Flood攻击的手段并不多,而SYN Cookie就是其中最著名的一种。SYN Cookie原理由D. J. ...

    JAVA中cookie用法

    ** 处理cookies 类型 方法名 方法解释 String getComment() 返回cookie中注释,如果没有注释的话将返回...boolean getSecure() 如果浏览器通过安全协议发送cookies将返回true值,如果浏览器使用标准协议则返回false值。

    http协议学习系列

    包括如下章节,不可多得的学习资料 ...3.1 Cookie和Session 22 3.2 缓存的实现 25 3.3 断点续传和多线程下载的实现 26 3.4 https通信过程 27 3.5 http代理 29 3.6 虚拟主机的实现 30 附录:参考资料 31

    4.4_Cookie池1

    Cookie池是指在网络爬虫中为了绕开HTTP协议的无状态性而使用的一种技术。HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。Cookie池就是用来绕开HTTP的无状态性的...

    第九节 cookie的httponly设置-01

    Cookie 通过 HTTP 协议和服务器端进行交互,浏览器(客户端)可以通过 Cookie 与服务器端进行通信。Cookie 也可以用于存储一些其他信息,如用户的偏好设置等。例如,在某些网站上,Cookie 可以用来存储用户的搜索...

Global site tag (gtag.js) - Google Analytics