>  기사  >  php教程  >  php通过p3p头解决cookie跨域访

php通过p3p头解决cookie跨域访

WBOY
WBOY원래의
2016-06-06 19:56:001221검색

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 php中通过设置p3p头解决cookie跨域访问问题: 大家都知道cookie是不能跨域的,但可以通过设置p3p头来解决这个问题。 为了测试先编辑hosts文件,加入测试域名(在C:\WINDOWS\system32\drivers\etc\hos

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

    php中通过设置p3p头解决cookie跨域访问问题:

    大家都知道cookie是不能跨域的,但可以通过设置p3p头来解决这个问题。

    为了测试先编辑hosts文件,加入测试域名(在C:\WINDOWS\system32\drivers\etc\hosts)

    127.0.0.1 www.a.com

    127.0.0.1 www.b.com

    首先:创建 a_setcookie.php 文件,内容如下:

    //header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

    setcookie("test", $_GET['id'], time()+3600, "/", ".a.com");

    然后:创建 a_getcookie.php 文件,内容如下:

    var_dump($_COOKIE);

    最后:创建 b_setcookie.php 文件,内容如下:

    三个文件创建完毕后,我们通过浏览器依次访问:

    我们会发现,在访问b.com域的时候,我们并没有在a.com域设置上cookie值。

    然后我们修改一下a_setcookie.php文件,去掉注释符号,a_setcookie.php即为:

    header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

    setcookie("test", $_GET['id'], time()+3600, "/", ".a.com");

    再次通过浏览器依次访问:

    这次,你会发现在访问b.com域的时候,我们设置了a.com域的cookie值。

    似乎只有IE对跨域访问COOKIE限制比较严格,上述代码在FIREFOX下测试,即使不发送P3P头信息,也能成功。

php通过p3p头解决cookie跨域访

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.