Kohana本地网络下的PHP会话问题


Kohana PHP sessions problem under a local network

我有一个kohana(php)网站,当本地网络上的计算机在代理下使用会话时,我们遇到了问题。

问题是:PC 1和PC 2在同一本地网络中。他们使用代理服务器访问外部网站。PC 1用"用户A"访问网站,他现在在主页上,网站上写着"已连接用户A"。PC 2进入网站并用"用户B"访问,他现在在主页上,网站上写着"已连接用户B"。PC 1按F5重新加载网站主页,网站现在显示已用"用户B"登录。

该系统是外部安装的,我们只有在代理网络下才有这个问题。从本地网络(但没有代理)下的其他PC访问不存在此问题。

我们在auth模块中启用了"user_token"部分(它使用一个名为"user_tokens"的新表,该表使用浏览器用户代理),但问题仍然存在。

--编辑--我们使用的是Kohana 3.0、PHP 5.2.9和postgres 8.4

您的代理支持缓存吗?如果客户端登录,它应该NOT缓存不同的页面。

您的应用程序可能必须设置适当的HTTP标头,以告诉代理不允许缓存HTTP响应。

如果这还不能解决问题,请确保您没有使用客户端IP地址作为会话密钥。(如果你仍然喜欢使用IP,请为允许的代理创建一个白名单,然后使用HTTP forwarded_for标头。不过,这只会解决你信任的代理的问题。)

您能暂时关闭代理以确认问题吗?

你可以尝试使用Firefox和Firebug扩展访问该网站吗?这将使您看到从网站发送的确切HTTP响应代码和标头。了解它们将帮助我们为您诊断问题。