原文地址:http://blog.csdn.net/lovingprince/article/details/5984449

首先,什么是 P3P ( Platform for Privacy Preferences ),其实就是一种可以提供个人隐私保护策略的平台协议。网上去去找,说得更清楚,我就不罗嗦了,我只举个实际例子让大家有个认识。

例如 first.abc.com 这个页面中使用 iframe( 或者 img 、 script 等等方式 ) 嵌入了一个 third.xyz.com 的页面, first.abc.com 会设置一些 cookie 到用户本地,例如 trackid,   由于我们浏览器直接访问就是 first.abc.com ,所以这些 first.abc.com 设置的 cookie 可以称为第一方 cookie ,而 third.xyz.com 也可能需要设置一些cookie 到本地,例如 uc1 什么的,相对而言,这个 third.xyz.com 设置的 cookie 叫第三方 cookie( 不是本家 ) ,而在 iframe 等发出请求到 third.xyz.com 时,一般希望能够将本域名 (.xyz.com) 下的原有 cookie( 例如这里他自己设置的 uc1) 带上,不过不幸的是由于某些浏览器用户隐私保护设置问题,不会把 third.xyz.com 的cookie 发送出去,如果 third.xyz.com 需要依赖这些本地发送的 cookie ,那么就会产生问题。

 浏览器也有自己相应的默认选项。那如何让浏览器发送这些 cookie 呢?那就选择 高级 -> 勾选自动覆盖 cookie 处理。此时, third.xyz.com 的 cookie 就可以发送出去了。

不过话说回来,不可能让所有用户都去设置自己的浏览器吧?那怎么解决?那就是 P3P 的功能了,他提供给 web 服务器一个功能,制定一个策略 ,发表一个类似如下声明说:请把 cookie 给我吧,我拿来只是看看,可以帮助你提供更好的服务,绝对不透露给其他人。   浏览器收到这个声明后,会对比浏览器的设置,给用户一个提示,让用户选择是否发送 ( 当然,这个看浏览器如果处理的,一般来说看了声明都没有阻止 cookie 发送,有点奇怪的说 ) 。那么如何设置 P3P 呢?一种方式是使用 P3P 策略文件,相当之复杂,看了后怕,有兴趣自己去了解,另一种方式就是直接在 response中设置 P3P Header 即可,具体怎么设置,以及一些设置限制 请看 下面试验出来的结果:

1、 跟js 跨域不同,P3P 设置时只需要在任何同父域名的域名中header 设置一次即可生效,例如 xx.xyz.com 的域名response 中设置header 设置一次P3P ,和从yy.xyz.com 的response 中设置P3P header ,效果一样,他们都有.xyz.com 的顶级域名,设置一次之后针对所有顶级域名xyz.com 的应用都有效。

2、 上面说了P3P 的一个实际例子,可以知道,应该是需要cookie 发送的一方设置P3P 头,说明白一点,即first.abc.com 页面iframe 了 first.xyz.com ,那么应该在first.xyz.com 的response 中设置response Header( 记住是在第三方设置即可。)

3、 同一个顶级域名下,多次设置P3P ,仅第一次有效。

4、 置header 时需要同时设置cookie ,这些设置的cookie 就被P3P 声明了,后续都可以一直使用,没有在这里申明的cookie ,是被禁止被发送的。

5、   接上面第4 点,如果是前面被P3P 声明过的cookie ,例如t ,后面又被response 设置一次,但是这次却没有p3p 头,其实相当于这个cookie  t 的申明被取消了,那么后续作为第三方cookie 的 t ,就会被禁止,这点一定注意。

6、 对了,关键的忘记了,头怎么设置?类似 rundata.getResponse().addHeader("P3P","CP='CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR'"); 即可,不过其中的英文字符代表什么意思,大家可以去官方上看下。不做解释了,下面提供几个参考地址。

IE6: http://msdn.microsoft.com/en-us/library/ms537343.aspx#cookie_filtering

P3p: http://www.w3.org/P3P/

另外:下面附几个 cookie 限制,由于还有小版本的区别,这里只是一个大概,不一定精确,具体个数,大家可以在自己的浏览器上用 JS 循环写 cookie 试一试。看下能保存多少

以下就是关于各浏览器之间对 cookie 的不同限制:

IE6.0

IE7.0/8.0

Opera

FF

Safari

Chrome

cookie 个数:

每个域为 20个

每个域为 50 个

每个域为 30个

每个域为 50个

没有个数限制

每个域为 53个

cookie 总大小:

4K

4K

4K

4K

4K

4K

对于后面多写的 cookie ,浏览器采用的替换策略也不一致, IE6 基本上是采用最近最少使用策略, ff 就是后面替换前面的。

转载于:https://www.cnblogs.com/caly/p/3513486.html

P3P设置第三方cookie解决方案相关推荐

  1. 另一个域的cookie_一定要知道的第一方Cookie和第三方Cookie

    Cookie 是您访问过的网站创建的文件,用于存储浏览信息,例如您的网站偏好设置或个人资料信息.共有两种类型的 Cookie:第一方 Cookie 是由地址栏中列出的网站域设置的 Cookie,而第三 ...

  2. 网站统计:第一方Cookie和第三方Cookie

    什么是 Cookie? Cookie 是您访问过的网站创建的文件,用于存储浏览信息,例如您的网站偏好设置或个人资料信息.共有两种类型的 Cookie:第一方 Cookie 是由地址栏中列出的网站域设置 ...

  3. 使用 P3P 规范让 IE 跨域接受第三方 cookie

    参考;http://www.lovelucy.info/ie-accept-third-party-cookie.html 前两天帮同事处理一个 js 跨域问题,使用 jsonp 跨域提交用户名密码请 ...

  4. 通过 P3P规范让IE跨域接受第三方cookie session

    所谓第三方 cookie,就是说你访问网页 A,却接收到域名 B 的 cookie 设定指令.这可能是由于网页 A 请求或链接了 B 的网页,比如上面提到的 iframe 以及 jsonp. 我查到了 ...

  5. java cookie p3p_跨站cookie读取-第三方cookie问题p3p解决

    发表于 2012-09-06 08:14:04 by 月小升 IE6中设置隐私级别的时候,默认为中.拒绝第三方 另外采用图片标签潜入的源码, 比如当前页面为java-er.com/a.html 3.p ...

  6. 浏览器阻挡cookies_浏览器设置阻止第三方Cookie保护自己隐私

    当我们在某些大型网站上搜索一些东西时,在另外的一些网站出现了你搜索的东西的相关广告,这种现象的出现说明我们的隐私已经被跟踪.这种侵犯我们用户隐私现象的出现,要归功于第三方cookie所带来的副作用(隐 ...

  7. 第一方Cookie和第三方Cookie

    BAN  Cookie! 最近在学习cookie,对这个由服务器发送指令,在客户端(浏览器)上存储小文本数据或者sessionID的数据载体很感兴趣. 因为知道,cookie会记录自己的浏览数据,所以 ...

  8. 谷歌FLoC与禁用第三方Cookie后的江湖道术

    隐私和安全总是协助寡头把花园围墙越砌越高,同时花园围墙也常常侵蚀一些开放的商业模式,技术创新却不断支持新的商业模式和客户需求.今天讲的事情就是浏览器禁用三方Cookie后的商业模式和技术创新. 科技向 ...

  9. python3 获取cookie解决方案

    python3 获取cookie解决方案 方案一: 利用selenium+phantomjs无界面浏览器的形式访问网站,再获取cookie值: from selenium import webdriv ...

最新文章

  1. axure 点击按钮弹出框_Axure 教程:web网站原型设计技巧的分享
  2. centos6 升级gcc / 无法识别的命令行选项“-std=gnu++1y”的解决办法
  3. nrf52832的p09,p10 配置为 普通的gpio口
  4. 2020-11-24(Windows保护模式学习笔记(1)—— 段寄存器与段权限检查)
  5. python3的3D实战 -基于panda3d(3)
  6. MySQL命令梳理_MySQL操作命令梳理(2)
  7. java框架异常怎么处理_java异常处理与处理框架-笔记
  8. 初中计算机理论教案,初中信息技术教学设计
  9. Java ques: Exception in thread “main“ java.lang.ClassNotFoundException
  10. 考研压力越来越大,你秃了吗?
  11. LCD养生之道 液晶显示器清洁保养技巧
  12. EM30719 i2c不能正常读
  13. 保险精算师教你如何用大数据买车
  14. 软件开发工作量及费用量化评估方法在金融行业的应用
  15. Linux配置中文支持
  16. http://www.dewen.net.cn/q/13558/100阶乘
  17. 李沐 课程1.4-2.1
  18. 【imessage苹果推】软件安装CSR文件将尽可能区分每个证书
  19. 求职与面试(一):Android必备
  20. 视频教程-板绘生存指南-原画设计

热门文章

  1. V-Ray渲染教程:又快又好的V-Ray渲染参数!
  2. oracle db file sequential read,性能优化 ---- db file sequential read
  3. java迷宫队列实现_老鼠走迷宫(队列实现)
  4. asynchttpclient 超时_喜聚星联合摄制网剧超时空恋人明日爱奇艺开播!超甜剧情即将解锁...
  5. Suricata配置文件说明1
  6. 诗词、对联名句(千古名帖)
  7. 乡村少年宫计算机小组活动教案,乡村少年宫电脑画兴趣小组教案.doc
  8. JSONObject
  9. 低功耗设计基础_数字集成电路设计
  10. 大学不迷茫读书之笔记篇