Heim  >  Artikel  >  php教程  >  php通过p3p头解决cookie跨域访

php通过p3p头解决cookie跨域访

WBOY
WBOYOriginal
2016-06-06 19:56:001221Durchsuche

欢迎进入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跨域访

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn