我是否需要针对不同网站的不同会话表?

时间:2010-02-18 13:11:57

标签: php session sessionid

我有多个Web应用程序(PHP),它们从自己的域中提供给不同的客户。每个域显然都有单独的cookie和会话(域和路径都设置正确)。

我是否需要在数据库中为每个网站设置一个完全独立的会话表来尝试确保唯一会话?我猜我不需要,因为如果我们使用文件支持的会话,那么每个服务器使用相同的会话存储。所以我猜我用DB-store也可以重新使用这个表。

只是使用会话代码(我正在使用ADODB),在会话创建期间,我看不到任何代码来处理会话ID冲突。

2 个答案:

答案 0 :(得分:1)

它不会导致您的应用程序出现任何问题,但是,为了安全起见,我会使用不同的表,除非合并所有会话是您网站上某些功能的一部分。

我之前没有这样做,但我真的不认为会有任何问题。

答案 1 :(得分:0)

您可以修改会话ID以包含短站点前缀。只需在创建会话之前修改您的创建会话以调用session_id($ new_id)。

这也允许您列出搜索前缀的每个站点的所有当前会话。更优化的解决方案是将会话密钥拆分为两个字段,通过前缀和唯一密钥前缀索引进行索引。您需要修改会话创建功能才能实现此目的。

如果与其他网站绑定,您甚至可以通过此前缀验证并拒绝会话,从而提高安全性。

否则,如果您的会话ID已正确生成,则不应存在冲突问题。