P3P Header解决Cookie跨域的问题

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)。

复制代码 代码如下:

//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 文件内容:

通过浏览器访问: 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"' );

你可能感兴趣的:(P3P Header解决Cookie跨域的问题)