会话可以转移到指向同一CF实例的不同域吗?

时间:2009-07-28 22:24:34

标签: cookies coldfusion

假设我有localhost和localhost2都指向127.0.0.1

在//localhost/test/test.cfm( \ wwwroot \ test \ test.cfm)

<cfset session.name="HAHA">
<cfcookie domain=".localhost2" name="CFID" value="#session.cfid#">
<cfcookie domain=".localhost2" name="CFTOKEN" value="#session.cftoken#">
<cflocation url="//localhost2/test/test2.cfm" addtoken="false">

在//localhost2/test/test2.cfm(u wwwroot \ test \ test2.cfm)

<cfdump var="#session#">

我希望//localhost2/test/test2.cfm显示session.name =“HAHA”,但它会生成一个新会话,为什么?是因为我无法从localhost设置.localhost2 cookie吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

会话可以跨域,但 Cookie 不能。 (正如您所发现的,子域名有点不同。)出于安全原因,abc.com无法访问xyz.com的cookie。但是,CF本身并不关心您正在使用的域名。

因此,如果你有一个的链接传递了URL中的cfid和cftoken,那么会话就会丢失。但是,如果您在链接中(或在cflocation等中)传递了id和令牌,则会话仍然有效。