跨域请求时的 cookie 传送情况

自己动手做了一个实验,跨域的时候,确实是可以送出远方域名的 cookie 的:

首先在本地配两个域名,先修改 apache 的配置文件 httpd.conf ,加入:

NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
DocumentRoot "D:Documentscodewampwwwdm1"
ServerName dm1.local
</VirtualHost>

<VirtualHost 127.0.0.1>
DocumentRoot "D:Documentscodewampwwwdm2"
ServerName dm2.local
</VirtualHost>

然后还需要修改 hosts 文件,一般在 C:WindowsSystem32driversetc 加入:

127.0.0.1		dm1.local
127.0.0.1		dm2.local

然后构造两个域名下的文件,首先分别在各自的域名下设置一个 greeting 的字符串,即在 dm1 下准备好:

<?php
setcookie("greeting", "hello1");
?>

同样的在 dm2 下准备好:

<?php
setcookie("greeting", "hello2");
?>

分别访问一次,来写入 cookie ,然后在 dm1 下准备:

<?php
$val = $_COOKIE["greeting"];
echo "alert('$val')";

在 dm2 下准备:

<script src="http://dm1.local/index.php"></script>

访问 dm2 下的文件,可以看到弹出了写在 dm1 域名下的 cookie:


历史评论

Apache 多虚拟主机 | ZRJ (2012-08-15 16:40:48):

[…] cookie 传送情况,http://zrj.me/archives/187,记过了 apache […]

使用 Hugo 构建
主题 StackJimmy 设计