先简单了解什么是P3P?
P3P是一种被称为个人隐私安全平台项目(the Platform for Privacy Preferences)的标准,能够保护在线隐私权,使Internet冲浪者可以选择在浏览网页时,是否被第三方收集并利用自己的个人信息。如果一个站点不遵守P3P标准的话,那么有关它的Cookies将被自动拒绝,并且P3P还能够自动识破多种Cookies的嵌入方式。p3p是由全球资讯联盟网所开发的。
有些项目中我们可能会有跨城读写cookie的需求?这个时候我们可以借用p3p来实现。
浏览器第三方 cookie的 限制,所谓第三方 cookie,就是说你访问网页 A,却接收到域名 B 的 cookie 设定指令。这可能是由于网页 A 请求或链接了 B 的网页。
假设我们有两个域名xxx.com、yyy.com:
在xxx.com的首页中嵌入一个iframe页,src地址为 http://yyy.com/index.php页面,然后刷新yyy.com的首页获取Cookie。
asp.net设置p3p的方法:
HttpContext.Current.Response.AddHeader(\"p3p\", \"CP=\\"\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\\"\"\");
PHP设置p3p的方法:
header('P3P:CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"');
JSP设置p3p的方法:
response.setHeader(\"P3P\",\"CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'\")
php写cookie示例:
<?php
header('P3P:CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"');
setcookie(\"test\", \"cookie value\", time()+3600, \"/\", \".yyy.com\");
?>