`

HTTP协议之Cookie

阅读更多
Cookie是什么,有什么用,为什么要用到Cookie

Cookie 是小甜饼的意思,用于茶余饭后的小点心。
在程序中,就是一小段文本信息,写在 http 协议的 header 中,
由于 http 协议是无状态的,在http的每次请求和发生过程中,都带着 cookie

Request:
GET /spec.html HTTP/1.1
Host: www.example.org
Cookie: theme=light; sessionToken=abc123
...


Response:
HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: theme=light
Set-Cookie: sessionToken=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT
…


HTTP_cookie

请看Fish Li 写的【细说Cookie】
http://www.cnblogs.com/fish-li/archive/2011/07/03/2096903.html


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后,就可以冒充别人的身份了。 这个过程我就不演示了。

[Web安全性测试之XSS]


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协议分析报告

    (2) 由于网页文档的传输需要可靠性的保证,所以HTTP协议使用TCP协议,TCP协议是一个面向连接的协议,在通信时需要建立连接,通信结束要释放连接,TCP建立连接时需要三次握手,提供可靠的数据传输,HTTP协议默认...

    对Cookie及http协议的理解

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

    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...

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

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

    手写Http服务器,已实现http基础协议、参数接受、servlet、filter、cookie、多文件上传等 支持NIO

    一款轻量化Http服务器。支持bio、nio两种模式。归属Coody Framework下。手写Http服务器,已实现http基础协议、参数接受、servlet、filter、cookie、多文件上传等。支持NIO。

    http协议学习系列

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

    Web应用安全:HTTPCookie的作用.pptx

    由于 HTTP 协议的无状态性,服务器端不能保存客户端的状态。但是,在应用程序中,保持客户端的状态却是相当常见的需求。 比如,在线购物网站中的“购物车”就是一个典型的案例。购物车记住了用户在哪些商品上点击了...

    session和cookie

    众所周知,http协议是一个无状态协议,简单来说就是,web服务器是不知道现在连接上来的人到底是哪个人,为了满足选择性发送信息的需求,在http的基础上做了很多扩展来达到这个目的,如数字签名、cookie、session等。

    HTTP协议调试工具HttpDebug

    一款小的HTTP调试工具。HttpDebug HTTP协议调试工具 可以自定义Cookie、Post数据甚至是整个HTTP请求头,用作开发WEB、WEB应用软件的调试很不错

    HTTP协议捕捉分析的工具(HTTPAnalyzer)v7.5.3.455官方汉化安装版

    HTTP Analyzer是一款IE集成插件,可以实时捕捉HTTP/HTTPS 协议数据,可以显示许多信息(包括:文件头、内容、Cookie、查询字符窜、提交的数据、重定向的URL地址),可以提供缓冲区信息、清理对话内容、HTTP状态信息...

    python selenium操作cookie的实现

    由于HTTP协议是无状态协议,所以服务器与客户端通过http协议通讯时,服务器不能记录客户端的信息。 为了解决这个问题,通过 Cookie 和 Session 技术来实现。 Cookie保存在客户端中 Session保存在服务器中 cookie的...

    1_HTTP协议分析.pptx

    HTTP请求与响应,状态与会话,Cookie欺骗,Burp suit,http协议字段分析以及抓包等

    论文研究-基于Cookie的Web平台身份认证机制的研究与设计 .pdf

    基于Cookie的Web平台身份认证机制的研究与设计,胡明珠,辛阳,目前,越来越多的网站访问都需要进行身份认证,这对信息安全领域又提出了新的要求。为了解决HTTP协议的无状态性,提出了Cookie这一��

    易语言 http读文件

    Http发送请求 (局部_HTTP请求句柄, 程序集_附加协议头, 取文本长度 (程序集_附加协议头), 程序集_提交信息, 取文本长度 (程序集_提交信息)) .默认 程序集_页面内容 = 取空白字节集 (0) 返回 () .判断结束 ' 读取...

    Python爬虫番外篇之Cookie和Session详解

    其实简单的说就是当用户通过http协议访问一个服务器的时候,这个服务器会将一些Name/Value键值对返回给客户端浏览器,并将这些数据加上一些限制条件。在条件符合时,这个用户下次再访问服务器的时候,数据又被完整的...

    Http/Https Protocol Debuger HTTP协议调试器

    1.支持HTTP和HTTPS(SSL加密)网络协议的跟踪和调试。 2.可以查看到HTTP/HTTPS协议连接的详细过程和返回结果。 3.允许GET/POST/HEAD/PUT四种连接方式。 4.支持HTTP的Proxy代理。 5.自动处理重定向Redirect功能。 6....

Global site tag (gtag.js) - Google Analytics