我有一个kohana(php)网站,当代理服务器在本地网络上的计算机上使用时,我们遇到了会话问题。
问题: PC 1和PC 2位于同一本地网络中。他们使用代理服务器访问外部网站。 PC 1使用“用户A”访问该站点,他现在位于主页面,并且该站点显示“已与用户A连接”。 PC 2进入站点并通过“用户B”访问,他现在位于主页面,站点显示“已与用户B连接”。 PC 1按F5重新加载站点主页,现在该站点显示用“USER B”记录。
系统安装在外部,我们只在此代理内网络中遇到此问题。来自本地网络(但没有代理)的其他PC的访问也没有这个问题。
我们在auth模块中启用了“user_token”部分(它使用了一个名为“user_tokens”的新表,该表使用了浏览器用户代理),但问题仍然存在。
- 编辑 - 我们正在使用Kohana 3.0,PHP 5.2.9和postgres 8.4
答案 0 :(得分:1)
您的代理是否支持缓存?如果客户端已登录,它应 NOT 缓存不同的页面。
您的应用程序可能必须设置适当的HTTP标头,以告知代理不允许缓存HTTP响应。
如果这不能解决问题,请确保您没有使用客户端IP地址作为会话密钥。 (如果您仍然喜欢使用IP,请为允许的代理创建白名单,然后使用HTTP forwarded_for标头。它只会解决您信任的代理问题。)
答案 1 :(得分:0)
您可以暂时关闭代理以确认问题吗?
您可以尝试使用Firefox和Firebug扩展程序访问该网站吗?这将让您看到从站点发送的确切HTTP响应代码和标头。知道它们是什么将帮助我们为您诊断问题。