这里记录一下p3p实现跨域操作
来源:互联网 发布:淘宝二手电脑店铺推荐 编辑:程序博客网 时间:2024/05/21 11:34
/* * 架构分析: * 1.我们要实现多网站同步登入的话,其实情况很多,这里大概介绍两种情况。 * 一种是公用一个二级域名的情况,另外一种是域名不在同一个域下面,这里就需要用到p3p协议实现了 * * 下面是我的测试思路 *//* * 主要要解决一个问题,就是跨域的问题 * 测试思路,我们a.test.cc下创建一个cookie看b.test.cc下面是否可以可以获取到这个cookie * 如果不能获取到,我们试试p3p协议来实现跨域 * 我们需要验证根域名是否可以获取子域名下的cookie呢,这个非常重要 * *///a.test.cc 中的a.php文件header('Content-Type:text/html;charset=utf-8');//setcookie('cookiea','',time()-3600,'/','test.cc');if(isset($_COOKIE['cookiea'])){ echo $_COOKIE['cookiea'].'已经存在';}else{ setcookie('cookiea','i am cookie a',time()+3600,'/','test.cc'); echo $_COOKIE['cookiea'].'生成了';}//b.test.cc中的b.php文件if(isset($_COOKIE['cookiea'])){ echo 'i am can get cookiea'.$_COOKIE['cookiea'];}else{ echo 'i am not can get cookiea';}//test.cc中的c.php文件if(isset($_COOKIE['cookiea'])){ echo $_COOKIE['cookiea'];}else{ echo 'no exists';}//使用三个文件的主要用途是测试setcookie($name,$value,$expire,$path,$domain,$secure,$httponly);//主要是想说明$domain这个参数,经过上面的测试可以看出,在同一个父域下的子域的cookie是可以共享的,也就是不需要跨域就能获取到//所以这个时候给我们的启发是:比如在公司内部有多个系统例如:oa.kingnet.com d.kingnet.com kana.kingnet.com 这三个子域名//的登入都可以从kingnet.com这个父域来获取的到,所以登入验证只需要放在kingnet.com上自然就实现了同步登入了//如果是不同的域名呢?这里为了测试方便,我把cookie的域设置到我的范围之外来测试今天才搞明白,原来不需要这样,下面是最好的证明 <?php//主要要解决一个问题,就是跨域的问题//测试思路,我们a.test.cc下创建一个cookie看b.test.cc下面是否可以可以获取到这个cookie//如果不能获取到,我们试试p3p协议来实现跨域//我们需要验证根域名是否可以获取子域名下的cookie呢,这个非常重header('Content-Type:text/html;charset=utf-8');//setcookie('cookiea','',time()-3600,'/','test.cc');if(isset($_COOKIE['cookiea'])){echo $_COOKIE['cookiea'].'已经存在';}else{header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');setcookie('cookiea','i am cookie a p3p',time()+3600,'/','a.test.cc');echo $_COOKIE['cookiea'].'生成了';}$url = "http://b.test.cc/b.php?ttname=".$_COOKIE['cookiea'];echo '<script text="text/javascript" src="'.$url.'"></script>';?>//这里接受a.test.cc的请求,这个时候把cookie种上即可, 现在知道同步登入虽然看起来挺烦吗的,但是这是不是一下轻松+愉快了呢<?phpif(isset($_GET['ttname'])){$ttname = $_GET['ttname'];file_put_contents("/tmp/log.txt",$ttname."\r\n",FILE_APPEND);setcookie('ttname',$ttname,time()+3600,'/','b.test.cc');echo 'i am can get cookiea'.$_GET['ttname'];}else{echo 'i am not can get cookiea'.$_GET['ttname'];}?>
0 0
- 这里记录一下p3p实现跨域操作
- p3p跨域操作cookie
- 利用P3P实现跨域
- PHP利用P3P实现跨域
- PHP - 利用P3P实现跨域
- PHP利用P3P实现跨域
- PHP利用P3P实现跨域
- P3P实现跨域,多平台登录
- PHP利用P3P实现跨域
- PHP利用P3P协议实现跨域
- PHP利用P3P实现跨域
- 利用P3P实现跨域设置cookie
- PHP利用P3P实现跨域
- p3p协议实现跨域站点登录
- PHP利用P3P实现跨域
- 来这里记录一下自己
- p3p跨域详解
- PHP使用P3P完成跨域COOKIE操作
- JAVA HttpServer 简单整理
- zeroclipboard 实现支持多浏览器剪切板
- php采集器
- heartbleed 心脏流血漏洞原理及补救方法
- 在word中插入分页符,多出一行
- 这里记录一下p3p实现跨域操作
- 【HDU】5152 A Strange Problem 【线段树+欧拉函数】
- 天声人語 20141228
- android学习遇到的问题汇总1
- swift与OC混编桥的问题
- 第十八周项目三复仇者联盟之数组成绩统计
- svn 图标不显示
- 黑马程序员——自学c++2
- 《---》