By:lcx
 
今天在w3网站上看到了一篇介绍p3p的文章( [url]http://www.w3.org/TR/P3P/[/url]),利用这个可以实现跨域访问cookie,我也试验一下。

其实很简单:试验用了2个域名readlog.cn和diaor.com

首先在readlog.cn下放置一个文件setcookie.php 内容:
PHP代码

1. 2. header('P3P: CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"');//p3p
3. setcookie("TestCookie","test",time()+3600,"/",".readlog.cn");//设置cookie
4. ?>

再放置一个readcookie.php 内容:
PHP代码

1. 2. echo $_COOKIE["TestCookie"];
3. ?>

然后在diaor.com下放置setcookie.php ,内容:
JavaScript代码

1.

然后访问 [url]http://www.diaor.com/setcookie.php[/url] 抓取数据包可以发现,在readlog.cn域下生成了一个cookie ,名称是TestCookie,值是test

下面访问 [url]http://www.readlog.cn/readcookie.php[/url] 来验证一下,可以发现,cookie确实设置成功了。

有兴趣可以去掉header('P3P: CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"');这句,试一下就会发现cookie能设置,但是在readlog.cn读不到这个cookie。