Cookie是HTTP协议中非常重要的东西, 之前拜读了Fish Li 写的【细说Cookie】, 让我学到了很多东西。Fish的这篇文章写得太经典了。 所以我这篇文章就没有太多内容了。
最近我打算写一个系列的HTTP文章,我站在HTTP协议的角度, 说说我对Cookie的理解。
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://www.cnblogs.com/tankxiao/archive/2013/04/15/2848906.html#cookiecategory
相关推荐
标题中的“ecshop源码分析——用cookie缓存sql语句”揭示了本文将探讨的是电商系统ECSHOP在优化数据库查询性能方面的一个实践,即利用Cookie来缓存SQL语句。ECSHOP是一款基于PHP开发的开源电商解决方案,它的性能...
为了实现列宽的Cookie缓存,我们需要使用浏览器的Cookie API。Cookie是一种小型文本文件,存储在用户的本地浏览器中,可以用来保存用户偏好或会话信息。在调整列宽后,我们可以将每个列的宽度写入Cookie,每个宽度值...
本示例中,我们探讨的是如何利用Servlet结合MVC(Model-View-Controller)设计模式来实现cookie缓存以及分页显示数据,这两项功能在实际Web应用中非常常见。 **MVC设计模式**: MVC模式是软件工程中的一种架构模式...
**jQuery Session & Cookie缓存插件详解** 在Web开发中,数据存储是不可或缺的一部分,而Session和Cookie作为客户端与服务器之间交互数据的重要手段,经常被用于实现用户状态管理。jQuery库提供了一些方便的方法来...
然而,在某些情况下,如进行登录操作时,WebBrowser控件可能会因为保存了Cookie缓存而导致用户在重新登录时仍处于上一次的登录状态。为了解决这个问题,我们需要清除WebBrowser控件中的Cookie缓存。下面将详细介绍...
#### 三、清除Cookie缓存 Cookie是一种用于存储用户会话信息的小型文本文件,存储在用户的浏览器上。当需要删除某个Cookie时,可以将其有效期设为过去的时间或者0,使其立即失效: ##### 代码示例: ```jsp Cookie...
在Web开发中,Cookie是一种广泛使用的机制,用于存储客户端状态信息。它们是服务器发送到用户浏览器并由浏览器保存的小型文本文件。在这个话题中,我们将深入探讨如何操作Cookie,自定义标签,以及如何定义EL...
"万能库克,谷歌浏览器通用缓存cookie提取下载软件" 这个标题揭示了软件的主要功能,即它是一个适用于谷歌浏览器(Chrome)的工具,能够提取并下载用户在浏览不同网站时生成的cookie数据。Cookie是网站在用户浏览器...
4. **多线程安全**:确保在多线程环境下,对共享资源(如账号列表、Cookie缓存)的访问是线程安全的。 5. **异常处理**:对可能出现的网络错误、登录失败等情况进行处理,提供良好的用户体验。 总的来说,易语言QQ...
Cookie是Web开发中的一种重要机制,它用于在客户端和服务器之间存储和传递少量的数据。Cookie主要解决了HTTP协议无状态的问题,使得服务器能够识别并跟踪用户的会话。在本文中,我们将深入探讨Cookie的定义、使用...
本文将深入探讨ECShop的源码分析,重点关注静态缓存、查询缓存、Cookie缓存以及权限系统这四个核心知识点。 首先,我们来谈谈静态缓存。在高并发的电商环境中,动态生成页面会导致服务器负载增加,影响性能。ECShop...
Vue中设置、获取、删除cookie的方法主要包括在Vue项目中通过编写相应的JavaScript函数来操作cookie,以下是详细的知识点。 1. cookie的基本原理和用途 Cookie是一种小型文本文件,由网站服务器发送至用户的浏览器并...
若要保留特定站点的Cookies,可以通过比较Cookie的域名来实现。 4. **清理浏览记录**:这包括历史记录、表单数据、搜索历史等,易语言可以通过调用`SHDeleteKey`等API来清理注册表中的相关条目。 5. **用户界面...
application和cookie的介绍,使用方法,cookie的原理介绍。cookie缓存。
Volley框架二次封装,实现了带Cookie的Get和Post请求,图片加载和图片缓存(内存缓存,SD缓存,内存SD双缓存.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
java发邮件 这是一个基于SpringBoot+Layui+Shiro+Thymeleaf的登录...注意:本来登录成功会跳转到后台首页,后台首页有退出登录,但是我没加上去,有些同学可能记住密码就自动登录了,你只要清以下浏览器Cookie缓存即可
本文将详细介绍如何利用js-cookie库来实现前端缓存数据的定时失效,并通过实际代码示例来帮助大家理解。 首先,我们需要明确在实现前端缓存数据定时失效时可以采用的技术方案。通常来说,有以下两种方法: 1. 使用...
清除Cookies软件
回调接口不仅只是回调JSON格式的数据,同时还会保存cookie缓存,JSON演示如下: {“status”:1,”msg”:”登录成功”,”qq”:”2958613932″,”qqname”:”九詺”,”skey”:”@”,”pskey”:”2JnIy1AXvcKq*fFY8...