首页 > 编程 > JavaScript > 正文

P3P Header解决Cookie跨域的问题

2019-11-20 22:57:13
字体:
来源:转载
供稿:网友

P3P

  P3P是一被人私安全平目(the Platform for Privary Preferences)的,能保在私,使Internet浪者可以在,是否被第三方收集利用自己的人信息。如果一站不遵守P3P的,那有它的Cookies被自拒,且P3P能自破多Cookies的嵌入方式。P3P是由全球盟所的。

例子

  面存在iframe,想要取iframe框架面的cookie,就要在iframe相的面面添加P3P Header信息,否在IE下取不到。因IE有安全策略,限制面不保存第三方cookie(注:前面第一方cookie,第三方cookie就是前以外的其他的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"' );

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表