通过设置p3p头来实现跨域访问cookie

By:lcx

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

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

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

<?php
     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
     setcookie("TestCookie","test",time()+3600,"/",".readlog.cn");//设置cookie
?>

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

<?php
echo $_COOKIE["TestCookie"];
?>

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

<script src="http://www.readlog.cn/setcookie.php"></script>

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

下面访问http://www.readlog.cn/readcookie.php 来验证一下,可以发现,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。

相关日志

发表评论