用 P3P 实现隐私参数优选策略

偶尔在yahoo的 头信息里看到p3p就上网查了一下 放在这里储存
<?php
print_r(get_headers());
?>
结果是这样的
Array
(
     [0] => HTTP/1.1 301 Moved Permanently
     [1] => Date: Mon, 17 Sep 2007 05:33:26 GMT
     [2] => Location: http://cn.yahoo.com/
     [3] => Connection: close
     [4] => Content-Type: text/html
     [5] => HTTP/1.1 200 OK
     [6] => Date: Mon, 17 Sep 2007 05:33:26 GMT
     [7] => P3P: policyref=”http://p3p.yahoo.com/w3c/p3p.xml“, CP=”CAO DSP COR CU
R ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND
PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV”
     [8] => Connection: close
     [9] => Content-Type: text/html
)


下面为转载

作者: BUILDER.COM
Monday, May 20 2002 11:02 AM

 

Platform for Privacy Preferences(P3P,中文称隐私参数优选平台)是一种为网站说明隐私和/或用户信息策略的XML标准。采用P3P之后网站属主即可描述其网站所收集的信息内容及其用途,在没有实现P3P的情况下,有些用户在提交表单或者用cookie浏览网站时就只得把自己的安全选项设置为较低级别。而采用P3P就可以通过建立代理(agent)的方式来代表用户参与网络活动。本文就是对P3P的基本概述。

W3C宣布的P3P的5个目标如下:
  • 收集网站数据的标准纲要,也就是所谓的P3P Base Data Schema
  • 用途、收件人、数据类别以及其他涉及隐私暴露方面的标准集合
  • 表达隐私策略的XML格式
  • 把隐私策略关联网页、网站和cookie的方式
  • 通过HTTP传输P3P策略的机制

P3P的实现

P3P的功能有三个部分组成:一个或者多个策略文件、策略参考文件和源自服务器的HTTP报头。策略文件应该存放在Web服务器的w3c目录下(/w3c)。

你不妨对你的网站计划和评估一下现有的隐私策略。如果没有这样的计划或者策略,那么在实现P3P之前你就应该制定相应的计划。隐私策略示例请见Sun网站。现在先让我们了解实现P3P的基本步骤。

1. 创建策略文件(Policy.p3p)
首先你必须创建一个策略文件。XML策略文件准确描述了信息的内容及其用途。记住,P3P采用了“只有得到承认的才是许可的”防范机制,这就是说,只有这个策略文件中描述过的数据才需要采集。P3P规范并没有说明怎样的数据及其处理过程不在包含范围之内。这样策略文件就会包含大量信息,好在IBM的P3P策略编辑器在你创建这类文件的时候可以帮上大忙。

策略文件至少包含了关于网站的声明语句。该语句的内容是采集何种数据以及如何使用它们的信息。清单A即是实现自己策略的示例。

采集的数据遵循P3P Base Data Schema规定的数据结构。假如实现了多个声明,那么各个声明的目的和数据列表是不同的(也许某个网站需要针对cookie、注册和购物采用不同的声明)。IBM的P3P策略编辑器并没有包含不被采集的特殊数据字段,不过,按照W3C提案的规定,我建议你包括网站采集到的特殊数据(比方说:“用户家庭住址”)。此外文件中最好还要包括Save Zone声明,Save Zone是网站上同具体用户无关的信息组成部分。

2. 创建策略参考文件(Policy.xml)
编写策略文件之后就必须接着创建策略参考文件了。不同的网站目录采取不同的隐私策略是完全可能的。可是,大多数网站通常会在整个网站范围内再适用单一的策略。创建策略参考文件就是这个过程中最简单一步,可是你得保证P3P策略文件的URL和策略名称(#generalPolicy)写对了。文件中包含的元素只是策略适用目录的路径。清单B中的策略参考示例则包含了根目录下的全部路径。

3. 配置服务器
实际上,要真正开始用到P3P你还得先配置你的服务器传递一个指向策略参考文件的HTTP报头。系统配置根据市售各类服务器的差别而不同。如果你不具备访问服务器的权限,那么你可能得使用<link>标签或编写相应的代码。

在下面的例子里,P3P是HTTP报头的名字。冒号以后的所有内容就是报头的值,它分成两个部分:指向策略参考的URL和简洁策略CP(Compact Policy)。
P3P:policyref=”http://www.mysite.com/w3c/p3p.xml” CP=”ALL DSP COR NID CUR OUR IND PUR”

CP是由3字符代码组成的列表(相关信息已经在W3C网站上进行了说明)。在上例中,该网站不定期地(INDefinite)为OUR公司收集购买商品项目(PURchasing)或完成当前活动(CURrent)的有关数据。有疑问(DiSPutes)、不可识别(Nonidentifiable)的数据作为cookie存储(NID)。由于我们的网站以cookie的方式存储客户号,所以NID应该从列表中删除。

CP应该匹配完整的策略;因此,如果你在CP中使用了NID,那么你应该在你的策略文件中包括<nonident/>标签。为了匹配这些设置而在下一节介绍的校验工具会对以上代码进行检查,如果有差异的话,Internet Explorer 6.0浏览器也会检查策略文件并且令策略文件无效。

如果你使用的共享服务器或者Web服务器难以配置HTTP报头,那么你不妨将其添加到你的 HTML或Java代码中。我就在自己的JSP文件中添加了下列代码:

response.setHeader(“P3P”,”policyref=\”http://www.mysite.com/w3c/p3p.xml\” CP=\”ALL DSP COR CUR OUR IND PUR\””);

如果你的站点是基于HTML的,那么你也可以使用 <link> 标签:
<link rel=”P3Pv1″ href=”/w3c/p3p.xml”></link>

检查和测试

IBM的P3P编辑器可以对你的P3P文件而整个隐私系统的实现进行检查。幸好,W3C在网上推出了一种检查工具。你不妨输入自己主页的URL看看检查工具是如何工作的。它会说明你的P3P实现中存在的语法或配置错误。此外,你也可以IE 6.0的菜单中选择View–> Privacy Report,列出全部站点,然后选择你的网站并单击Summary按纽查看你的隐私报告。

小结

最后,策略参考文件(P3P.xml)和策略文件(Policy.p3p)都被创建出来了。Policy.p3p文件是完整策略;它被P3P.xml(或 Policy.xml)引用,这个可以通过查看HTTP报头认识到这一点。W3C强烈建议你在Web服务器上把这些文件存放在一个/w3c目录下。如果每个人都在用着同一目录,那么,就算HTTP报头没被收到,用户代理也能找到这些文件。

Leave a Reply