浏览 15520 次
锁定老帖子 主题:用P3P解决第三方cookie存取的问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-06-26
第一次发帖,请各位高手多多指教 首先介绍第一方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响应的头信息: 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间: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\"");而无需指定隐私策略文件也可以达到指定隐私策略的目的 |
|
返回顶楼 | |
发表时间:2007-06-26
我的应用只用到了关于cookie的部分,关于p3p的其他应用也和大家多多交流,最后觉得p3p是个比较恐怖的东西,想想用户在不知不觉浏览网页的时候,隐私策略已经被修改了。
|
|
返回顶楼 | |
发表时间:2007-06-26
我的应用到了P3P关于cookie设置,希望和大家多多交流,最后觉得p3p是一件比较恐怖的东西,服务器能够修改浏览用户的隐私策略。
|
|
返回顶楼 | |
发表时间:2007-07-26
引用 请问这个能不能给我一个java的例子, 我的没有试验成功.多谢
可能你理解错误了,p3p不能让其他域读取到第三方域的cookie 只是使 第三方cookie在能够在本域内被存取 比如一个 www.cctv.com中有个服务应用 是 cnc.com域的, 通常情况下用户的隐私策略设置为中或者更高 在cnc.com域的cookie是不能够正常读取的,服务端能够改变 用户对cnc.com域的隐私策略使cnc.com域下的cookie正常存取 |
|
返回顶楼 | |