初识P3P

Google 标签: P3P, 第三方cookie, 隐私策略, http head

P3P主要应用于网站跨域访问方面,全称为隐私偏好设定平台(platform for privacy preference, P3P)。而谈到P3P就不得不提cookie。目前大部分网站应用都使用cookie进行某种行为,比如用户信息收集、用户上网行为分析以及session保持等等。但是在某些情况下,用户是不愿意使用cookie的。而禁止cookie又会妨碍用户使用某些重要的网站比如在线银行、网上购物等。所以微软从ie6开始启用P3P并可以自定义隐私策略来使用cookie,而Netscape 公司早在2002 年5 月便发布了Netscape Navigator 7 软件的测试版,该软件包括与IE6十分相近的P3P功能。

以IE7为例,我们来看看隐私策略的设置:

默认情况下,ie7启用隐私策略为中。可以看到有两个阻止一个限制。

这里解释一下第一方cookie和第三方cookie。第一方cookie是指你当前访问的站点的cookie。而第三方cookie是指不是你当前访问的站点的cookie。比如你当前访问的是[url]www.abc.com[/url],但是在这个网站上嵌入了其他网站(比如[url]www.xyz.com[/url]),那么属于abc.com这个域cookie就是第一方cookie,而属于xyz.com这个域的cookie就属于第三方cookie。

再来解释有两个阻止一个限制: 第一个阻止(阻止没有紧凑隐私策略的第三方cookie),即为ie7发现存在没有紧凑隐私策略的第三方cookie时就将这个cookie在http的request中删除然后进行http请求(get或者post),“没有紧凑隐私策略”是指没有被P3P声明; 第二个阻止(阻止保存...),即不保存这样的第三方cookie,因为有些cookie是有有效期的; 第一个限制(限制保存...),即不保存这样的第一方cookie。

使用“中”的隐私策略等级,可以阻止任何没有被P3P声明的第三方cookie。可以通过ie浏览器的任务栏上面的“眼睛”来查看都阻止了哪些cookie。而有些业务又必须保证这些cookie不被拦劫,那这个时候就需要使用P3P了。

P3P通过为隐私策略提供一个标准的可机读格式,以及一个能使Web浏览器自动读取和处理策略的协议解决了这个问题。正因为此,万维网联盟(World Wide Web Consortium,W3C)制定了P3P,并把它作为Web 站点与它们的隐私策略相联系的标准方法。P3P可以启用可机读的隐私策略,而该隐私策略可以由Web浏览器和那些能显示符号、提示用户或采取其他适当行动的用户代理工具来自动获取。其中的一些工具也可以将各个策略与用户的隐私偏好相比较,并帮助用户决定何时与Web站点交换数据。

那么P3P到底是怎样工作的呢?这里只涉及到P3P的工作原理,如何实现P3P是需要写程序的,而程序本人一窍不通,所以不做介绍,有兴趣的可以google一下,到处都是。

上面提到了第三方cookie被P3P声明。P3P声明是什么意思呢?其实就是指在某一个HTTP的response的头部插入一个P3P的头,而在同一个response中的cookie就都被此P3P声明了。这个可以通过httpwatch来查看到。

IE浏览器看到这个response中包含有P3P的头,默认就将后面的cookie(cookie1,cookie2等第三方cookie)全部认为可信,后续的request中就会带下这些cookie一起下发请求。但是如果后续的某一个response中没有P3P头部,而同样设置了cookie1,那么在此response后续的request中就不会带有这个cookie1了。所以如果需要使得每次request都带有这些cookie,有两种方法:一是在一个response里插入P3P的同时插入所有相关的cookie,而后续的response中不要在插入这些cookie;而是在每个response中都是插入P3P头。一般情况下使用第二种比较保险。

P3P就介绍到这里,更多请参考[url]http://www.w3.org/P3P/[/url]

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Mac电脑 Sublime Text 3

    在解决Mac Sublime Text 3 如何配置Python环境及安装插件的问题前,先来了解一下什么是Sublime Text mac?sublime te...

    py3study
  • Django之forms组件

      我们在写注册页面时,之前只是提交了数据,然后就保存了数据,后端根本就没有对数据进行校验,比如价格写的不是纯数字也让保存,这肯定是不行的,在前端是可以校验的,...

    py3study
  • Sublime text 3配置Pyth

    Sublime text 3是一款超级好用的编程神器,这里总结一下自己在使用的过程中遇到的问题。

    py3study
  • 思科、苹果、安联以及怡安联手推出面向企业的网络风险管理解决方案

    思科、苹果、怡安和安联集团今天宣布推出一项面向企业的网络风险管理解决方案,包括来自思科和苹果最安全技术、怡安的网络弹性评估服务以及来自安联集团的提升网络安全保险...

    FB客服
  • 4.Go-结构体,结构体指针和方法

    结构体:讲一个或多个变量组合到一起形成新的类型,这个类型就是结构体,结构体是值类型

    zhang_derek
  • 程序员过生日,机智方式点蜡烛

    1. 小区新搬来一户人家,一个30岁左右的年轻女人,带着一个4岁的男孩。每天独自一人操持家务,买菜做饭,接送孩子。时间久了,邻居们都有些议论,直到有一天,一个男...

    后端技术探索
  • 图解Python 3.x多继承时方法解析顺序MRO

    在Python 3.x的多继承树中,如果在中间层某类有向上一层解析的迹象,则会先把本层右侧的其他类方法解析完,然后从本层最后一个解析的类方法中直接进入上一层并继...

    Python小屋屋主
  • 工具| 诸神之眼nmap定制化之初识篇

    Nmap是学习网络安全必备的一款工具,有着强大的信息收集能力,有本书甚至因此称它为“诸神之眼” 。Nmap不仅仅是一个端口扫描器那么简单,它还有着一个强大的脚本...

    漏斗社区
  • (方法总结)Python 一行代码提取字符串每个单词首字母的两种方法

    列表推导式切片 split() 方法实现案例: In [1]: a_str = "I Love Python"

    用户7886150
  • 如何在CentOS上创建Sudo用户[快速入门]

    该sudo命令提供了一种机制,用于向普通用户授予通常仅对root用户可用的管理员权限。本教程将向您展示在CentOS上创建具有sudo访问权限的新用户的最简单方...

    小皇帝James

扫码关注云+社区

领取腾讯云代金券