http://www.kingmx.com/article/15061(转)
网上看了别人介绍的一片文章,说使用P3P可以完成跨域COOKIE操作,感觉很COOL,不过没有提供源代码,我胡乱写了一下,大家看看。
实际工作中,类似这样的要求很多,比如说,我们有两个域名,我们想实现在一个域名登录后,能自动完成另一个域名的登录,也就是PASSPORT的功能。
我只写一个大概,为了测试的方便,先编辑hosts文件,加入测试域名(C:\WINDOWS\system32\drivers\etc\hosts)
127.0.0.1www.a.com
127.0.0.1www.b.com
首先:创建a_setcookie.php文件,内容如下:
<?php
//header('P3P:CP="CURaADMaDEVaPSAoPSDoOURBUSUNIPURINTDEMSTAPRECOMNAVOTCNOIDSPCOR"');
setcookie("test",$_GET['id'],time()+3600,"/",".a.com");
?>
然后:创建a_getcookie.php文件,内容如下:
<?php
var_dump($_COOKIE);
?>
最后:创建b_setcookie.php文件,内容如下:
<scriptsrc="http://www.a.com/a_setcookie.php?id=www.b.com"></script>
----------------------------
三个文件创建完毕后,我们通过浏览器依次访问:
http://www.b.com/b_setcookie.php
http://www.a.com/a_getcookie.php
我们会发现,在访问b.com域的时候,我们并没有在a.com域设置上cookie值。
然后我们修改一下a_setcookie.php文件,去掉注释符号,a_setcookie.php即为:
<?php
header('P3P:CP="CURaADMaDEVaPSAoPSDoOURBUSUNIPURINTDEMSTAPRECOMNAVOTCNOIDSPCOR"');
setcookie("test",$_GET['id'],time()+3600,"/",".a.com");
?>
再次通过浏览器依次访问:
http://www.b.com/b_setcookie.php
http://www.a.com/a_getcookie.php
这次,你会发现在访问b.com域的时候,我们设置了a.com域的cookie值。
末了补充一句,似乎只有IE对跨域访问COOKIE限制比较严格,上述代码在FIREFOX下测试,即使不发送P3P头信息,也能成功。不过IE是老大啊。
参考文档:http://www.w3.org/P3P/
分享到:
相关推荐
在IE 里面跨域去设置 cookie跨域的实现,尝试了n中方法都不行,查了一下资料,可以通过设置header中的p3p值来实现,真不错:)
有别于JS跨域、IFRAME跨域等的常用处理办法,还可以利用P3P来实现跨域。P3P是什么P3P(Platform for Privacy Preferences)是W3C公布的一项隐私保护推荐标准,以为用户提供隐私保护。 P3P标准的构想是:Web 站点的...
P3P P3P是一種被稱為個人隱私安全平臺項目(the ... 當頁面存在iframe時,想要獲取iframe框架裏面的cookie,就要在iframe相應的動態頁面裏面添加P3P Header信息,否則在IE下獲取不到。因為IE有安全策略,限制頁面不
iframe 跨域访问session问题解决方法
信息共享中的P3P隐私保护技术及其实现方法研究,王智慧,,Internet和Web技术的发展为人们的生活带来了极大的便利,但同时也增加了个人隐私信息泄漏的风险。W3C提出的P3P(Platform for Privacy Preference
解决方法是: 代码如下: //www.B.com里的被调用的页面需要写P3P头,从而解除IE对写Cookie的阻止 context.Response.AddHeader(“P3P”, “CP=CAO PSA OUR”); //www.A.com里通过ajax调用www.B.com里的内容时,是跨域...
可以利用p3c-pmd-2.0.0.jar来实现基于阿里代码规约的代码规范检测。执行命令: $JAVA_HOME/bin/java -Dpmd.language=en -cp $BASE_PATH/p3c-pmd-2.0.0.jar net.sourceforge.pmd.PMD -d $TEMPDIR -R rulesets/java/...
P3P算法整理1
P3P问题的多解现象的概率研究_英文 基于P3P的网络隐私保护等
它可以用matlab在海森频率曲线上绘制p-Ⅲ型曲线。
附带P3distribution程序和test.mat,有注释,还有CDF图和Q-Q plot
P3P4实验室基本要求.介绍了P3P4实验室的相关设计及基本要求。
P3C阿里云的插件,github地址:https://github.com/alibaba/p3c 此处我们用到p3c-pmd插件,需要打包成jar文件,以便gitlab服务端使用; 已经打好包,方便直接拿去使用
IPCTester(1.8.220 P3Y&P4Y测试指令更新-----).exe
阿里巴巴Java代码质量检测插件:p3c-pmd-2.1.1.jar https://github.com/alibaba/p3c
272-将P1口状态送入P0、P2、P3(51单片机C语言实例Proteus仿真和代码)272-将P1口状态送入P0、P2、P3(51单片机C语言实例Proteus仿真和代码)272-将P1口状态送入P0、P2、P3(51单片机C语言实例Proteus仿真和代码)272-将P1...
example : java -Dfile.encoding=utf-8 -cp p3c-pmd-1.3.6.jar net.sourceforge.pmd.PMD -d test.har -R rulesets/java/ali-comment.xml