跨子域的会话可访问性

时间:2014-08-14 12:40:36

标签: php apache session

与(Empty $_SESSION superglobal on AJAX request, but session ID is preserved)相似但略有不同。

我正在尝试跨两个子域访问会话。直到最近,这个工作完美无瑕。跨越两个域.example.com和admin.example.com

session_set_cookie_params(0, '/', '.example.com');
session_start();

admin.example.com帐户位于其自己的虚拟服务器上,因此与example.com不同,我们称之为“User1”和“Adminuser”。 Adminuser可以访问User1的文件,因为它是User1组的一部分。

cookie在域之间完美传递,因此session_id在admin.example.com上也是正确的。我甚至可以读取会话的文件内容,数据全部存在且正确。

但是,$ _SESSION超级全局在admin.example.com上是空的

有趣的是,如果我将会话文件所有权更改为Adminuser,则会发生相反的情况。 Adminuser可以访问会话,但User1不能访问。让我相信这是我服务器设置的安全问题。

如上所述,这几个月完美无瑕。当我安装apache模块fastcgi并进行重建时,问题就开始了。我已经卸载了模块并回到suphp以查看问题是否会恢复,但唉它一直存在。

我没有安装suhosin,通过阅读我可以看到的类似帖子有时会导致问题。

任何人都知道可能导致此问题的设置?

[修改1 ]

另请参阅此主题:PHP Sessions across sub domains 2

@ ajmicek接受的答案中讨论的问题与我服务器上发生的问题相同,只有我知道Adminuser已经是User1组的一部分。

0 个答案:

没有答案