P3P Header解决Cookie跨域的问题
时间:2022-02-08 11:53:35|栏目:JavaScript代码|点击: 次
P3P
P3P是一?N被?Q???人?[私安全平?_?目(the Platform for Privary Preferences)的??剩?能?虮Wo在??[私?啵?使Internet?n浪者可以?x?裨?g?[?W??r,是否被第三方收集?K利用自己的??人信息。如果一??站?c不遵守P3P??实脑?,那?N有?P它的Cookies?⒈蛔?泳芙^,?K且P3P?能?蜃?幼R破多?NCookies的嵌入方式。P3P是由全球?Y??盟?W所?_?l的。
例子
???面存在iframe?r,想要?@取iframe框架?Y面的cookie,就要在iframe相??的??B?面?Y面添加P3P Header信息,否?t在IE下?@取不到。因??IE有安全策略,限制?面不保存第三方cookie(注:??前?L???面?榈谝环?cookie,第三方cookie就是??前?W?以外的其他?W?的cookie)。
复制代码 代码如下:
<?php
//http://www.a.com/a_setcookie.php 文件内容:
setcookie("test", "testval", time()+3600, "/", ".a.com");
//http://www.a.com/a_getcookie.php 文件内容:
var_dump($_COOKIE);
/*-----------------------------------------------------------------------
http://www.b.com/b_setcookie.php 文件内容:
<iframe src="http://www.a.com/a_setcookie.php?id=www.b.com"></iframe>
通过浏览器访问: http://www.b.com/b_setcookie.php
http://www.a.com/a_getcookie.php在访问 b.com域后,我们并没有在 a.com域发现设置上cookie值。
将http://www.a.com/a_setcookie.php文件内容改为如下:
--------------------------------------------------------------------------*/
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
setcookie("test","testval", time()+3600, "/", ".a.com");
//再次访问:http://www.b.com/b_setcookie.php
//http://www.a.com/a_getcookie.php在访问b.com域后,设置了a.com域的cookie值。
JS使用P3P协议
复制代码 代码如下:
xmlhttp.setRequestHeader( "P3P" , 'CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"' );