`
ding__lin
  • 浏览: 21090 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用P3P解决第三方cookie存取的问题

    博客分类:
  • java
阅读更多
初来乍到,看到一篇cookie夸域的帖子,觉的他只是解决了跨二级域名的问题,自己曾经作过一个企业应用的sso,其中用到的p3p解决了cookie跨域的存取。
第一次发帖,请各位高手多多指教

首先介绍第一方Cookie和第三方cookie:
第一方Cookie是来自当前正在查看的网站,或者发送到当前正在查看的网站。

第三方Cookie是来自当前正在查看的网站以外的网站,或者发送到当前正在查看的网站以外的网站。第三方网站通常提供正在查看的网站上的内容。例如,许多站点使用来自第三方网站的广告,或者iframe的别的网站的url,这些第三方的网站可能使用的Cookie。

然后是P3P,Platform for Privacy Preferences:
P3P由万维网协会研制,它为Web用户提供了对自己公开信息的更多的控制。
支持P3P的Web站点可以为浏览者声明他们的隐私策略。
支持P3P的浏览器 则可以将Web站点的策略与用户的隐私偏好进行对比,并为用户提出不匹配的警告。
因此,用户可以被通知有关Web隐私的处理方式。
更详细的说明请看http://www.w3.org/P3P/的介绍

以上几乎都是废话,我自己的理解就是通过P3P 可以使 用户自己指定浏览器的隐私策略。而这里只用到了关于cookie的一些设置。
我们打开ie浏览器-->工具-->internet选项-->隐私分页 用户可以通过手工 “导入” 用户隐私策略文件

以下是一个用户隐私策略文件,我使用的是IBM p3p Policy Editor 生成的
<?xml version="1.0" ?>
- <POLICIES xmlns="http://www.w3.org/2002/01/P3Pv1">
- <!--  Generated by IBM P3P Policy Editor version Beta 1.12 built 2/27/04 1:19 PM
  -->
- <!--  Expiry information for this policy
  -->
  <EXPIRY max-age="86400" />
- <POLICY xml:lang="zh">
- <!--  Description of the entity making this policy statement.
  -->
- <ENTITY>
  <DATA-GROUP />
  </ENTITY>
- <!--  Disclosure
  -->
- <ACCESS>
  <none />
  </ACCESS>
- <!--  No dispute information
  -->
- <!--  Statement for group "test"
  -->
- <STATEMENT>
- <EXTENSION optional="yes">
  <GROUP-INFO xmlns="http://www.software.ibm.com/P3P/editor/extension-1.0.html" name="test" />
  </EXTENSION>
- <!--  No consequence specified
  -->
- <!--  Use (purpose)
  -->
- <PURPOSE>
- <!--  No purpose specified
  -->
  </PURPOSE>
- <!--  Recipients
  -->
- <RECIPIENT>
- <!--  No recipient specified
  -->
  </RECIPIENT>
- <!--  Retention
  -->
- <RETENTION>
  <indefinitely />
  </RETENTION>
- <!--  Base dataschema elements.
  -->
- <DATA-GROUP>
  <DATA ref="#dynamic.cookies" />
  <DATA ref="#dynamic.searchtext" />
  <DATA ref="#user.name.middle" />
  </DATA-GROUP>
  </STATEMENT>
- <!--  End of policy
  -->
  </POLICY>
  </POLICIES>

通过指定用户隐私策略,就可以达到存取第三方cookie的目的,看到这也许会觉得跟web应用毫无关系,真正的问题是如何让服务器来指定用户浏览器的隐私策略?

其实很简单,只要在响应用户请求的时候在http的头信息中增加关于p3p的配置信息就可以了
以下是我通过httpwatch插件看到的http响应的头信息:




  • 描述: http响应的头信息
  • 大小: 18.7 KB
分享到:
评论
6 楼 ding__lin 2007-07-26  
引用
请问这个能不能给我一个java的例子, 我的没有试验成功.多谢


可能你理解错误了,p3p不能让其他域读取到第三方域的cookie
只是使 第三方cookie在能够在本域内被存取

比如一个 www.cctv.com中有个服务应用 是 cnc.com域的,
通常情况下用户的隐私策略设置为中或者更高 在cnc.com域的cookie是不能够正常读取的,服务端能够改变 用户对cnc.com域的隐私策略使cnc.com域下的cookie正常存取
5 楼 lordhong 2007-07-23  
我是来看playstation portable的... 寒...
4 楼 grandboy 2007-07-22  
请问这个能不能给我一个java的例子, 我的没有试验成功.多谢
3 楼 ding__lin 2007-06-26  
我的应用到了P3P关于cookie设置,希望和大家多多交流,最后觉得p3p是一件比较恐怖的东西,服务器能够修改浏览用户的隐私策略。
2 楼 ding__lin 2007-06-26  
我的应用只用到了关于cookie的部分,关于p3p的其他应用也和大家多多交流,最后觉得p3p是个比较恐怖的东西,想想用户在不知不觉浏览网页的时候,隐私策略已经被修改了。
1 楼 ding__lin 2007-06-26  
用java实现这样的功能,只要在HttpServlet中加入
response.setHeader("P3P","policyref="http://www.xxxx.com/xxx/w3c/p3p.xml CP=\"NON DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa HISa TELa OTPa OUR UNRa IND UNI COM NAV INT DEM CNT PRE LOC\"");
就可以了

当然p3p还提供了一种简单的方式 ,来加载用户隐私策略
通过IBM p3p的工具可以看到,CP=后面的字符串分别代表不同的策略信息,只要在http响应的头信息中增加
response.setHeader("P3P","CP=\"NON DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa HISa TELa OTPa OUR UNRa IND UNI COM NAV INT DEM CNT PRE LOC\"");而无需指定隐私策略文件也可以达到指定隐私策略的目的

       

相关推荐

    P3P Header解决Cookie跨域的问题

    在跨域设置Cookie的场景中,例如一个网页中嵌入了另一个域的iframe,若要使浏览器接受并存储第三方Cookie,网站需要提供P3P头。在上面的例子中,`http://www.b.com/b_setcookie.php` 的iframe尝试设置 `...

    P3P的几篇论文参考

    "**P3P问题多解的几个判定条件**"这篇文章可能详细列出了判断P3P问题是否存在多个解决方案的条件和方法。这些条件可能涉及网站的隐私政策、用户的需求偏好以及系统的可实施性等因素。了解这些条件对于开发者来说至关...

    P3P算法整理1

    P3P算法是计算机视觉中的一种基础算法,用于解决 Perspective-Three-Point 问题,也即PnP问题的特殊情况。在P3P算法中,使用已知的3个参考点间的几何关系,应用余弦定理列写方程组,之后对方程组进行一定程度的化简...

    iframe跨域与session失效问题的解决办法

    总结起来,解决iframe跨域和session失效的问题,关键在于处理第三方cookie的访问控制和IE浏览器的P3P协议要求。合理的P3P声明是关键所在,它能允许浏览器在符合用户隐私政策的前提下,正确地处理来自第三方源的...

    P3P4实验室基本要求

    P3P4实验室基本要求.介绍了P3P4实验室的相关设计及基本要求。

    P3P 和 跨域 (cross-domain) cookie 访问(读取和设置)

    P3P协议为此提供了一种可能的解决方案。 P3P协议允许网站发布其隐私政策的缩略信息,这些信息会被浏览器自动识别并加以利用。例如,在IE浏览器中,若要在跨域情况下设置cookie,可以通过在服务器端的响应头中添加P3...

    论文研究-一种高数值精度的P3P问题半闭式解法.pdf

    根据有限数目的参考点,通过二维单目观测图像估计三维目标的姿态参数(又...针对以上问题,以P3P问题为研究对象,提出一种可以同时得到全部可行解并具有高数值精度的半闭式解法,并通过详细的实验验证该方法的有效性。

    【ASP.NET编程知识】iframe跨域与session失效问题的解决办法.docx

    出于隐私安全的考虑,IE 会丢失 Iframe 中的 Cookie,IE6/IE7 支持的 P3P(Platform for Privacy Preferences Project specification)协议默认阻止第三方无隐私安全声明的 Cookie,Firefox、Chrome 不存在此问题。...

    PnP solvers C++版本,包括P3Pf,Epnp等

    P3P问题全称为“透视n点问题”,主要解决的是从图像中的2D关键点恢复3D场景点和相机姿态的问题。在P3Pf中,"f"代表焦距,即在P3P问题的基础上考虑了相机的焦距信息。这个方法基于四次方程的解析解,通过四个匹配的...

    P3P 简介

    隐私偏好设定平台(Platform for Privacy Preference,P3P)方案通过为隐私策 略提供一个标准的可机读格式

    IBM P3P Policy Editor

    IBM P3P Policy Editor是一款由IBM开发的专业工具,主要用于创建、编辑和管理P3P(Platform for Privacy Preferences)策略。P3P是一项互联网标准,它允许网站以一种标准化的方式向用户披露其隐私策略,使用户能够更...

    P3P解决方案的光学中心分布中的奇点

    多解决方案现象是P3P问题中的一个重要问题,因为对于许多实际应用而言,对于任何给定的P3P问题,首先必须解决任何实际实现之前可能存在多少个解决方案的问题。 在这项工作中,我们表明,在给定3个控制点的情况下,...

    最新单片机仿真 将P1口状态送入P0、P2、P3

    最新单片机仿真 将P1口状态送入P0、P2、P3最新单片机仿真 将P1口状态送入P0、P2、P3最新单片机仿真 将P1口状态送入P0、P2、P3最新单片机仿真 将P1口状态送入P0、P2、P3最新单片机仿真 将P1口状态送入P0、P2、P3最新...

    6P3P单端A类电子管功放的制作

    ### 6P3P单端A类电子管功放的制作 #### 一、引言 对于初涉电子领域的爱好者来说,单端A类电子管功放因其结构简单、音色出色而备受青睐。此类功放不仅易于制作,还能提供优质的音频体验。本文将详细介绍一种基于6N3...

    VxWorks_7_fsl_p3p4p5_BSP_Supplement_Guide__SR0620.pdf

    Wind River提供了全面的客户服务和支持,包括技术咨询、问题解决和培训。开发者可以通过官方网站获取更多联系信息,并了解如何联系客户支持。 7. 版权信息 文档明确指出,所有内容版权属于Wind River Systems, In...

    272-将P1口状态送入P0、P2、P3(51单片机C语言实例Proteus仿真和代码)

    272-将P1口状态送入P0、P2、P3(51单片机C语言实例Proteus仿真和代码)272-将P1口状态送入P0、P2、P3(51单片机C语言实例Proteus仿真和代码)272-将P1口状态送入P0、P2、P3(51单片机C语言实例Proteus仿真和代码)272-将P1...

    IE的cookie机制导致的session问题及解决办法.doc

    Microsoft提供了一个较为直接的解决方案,即在frame内的第三方站点的响应头中添加特定的P3P(Platform for Privacy Preferences)策略声明。具体操作是在响应头中加入以下代码: ``` response.addHeader("P3P", "CP...

Global site tag (gtag.js) - Google Analytics