2013年5月30日星期四

Cookie 跨域与P3P协议

关于Cookie跨域一个比较形象的例子就是Google Adsense,Google 可以在你的域名设置Cookie,但是你无法访问到Google 设置的Cookie,它只供 Google 访问。

一个简单例子:
步骤1:编辑 hosts 文件,加入测试域名

127.0.0.1    www.atest.com
127.0.0.1    www.btest.com


步骤2:文档根目录下,新建 a.php 。内容如下:

<iframe src="http://www.btest.com/b.php"></iframe>

步骤3:文档根目录下,新建 b.php 。内容如下:


<?php
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
$time = time();
setcookie('p3p0',$time,$time+3600,'/','.btest.com');
?>

步骤4:文档根目录下,新建 look.php 。内容如下:

<?php
var_dump($_COOKIE);
?>

在浏览器输入 http://www.atest.com/a.php 。然后访问:http://www.btest.com/look.php 可见 Cookie 已经生效。