场景:我在我的网站http://domain.com/上,看到我需要调整的一些内容。我点击“管理此页面”链接在新标签页中打开,该标签会将我发送到https://domain.com/myadmin/并重新进行身份验证,导航到我网站的相应审核面板,执行我的工作,并且通常会将该标签打开
现在回到网站的非SSL版本,我点击其他页面等等,看到其他内容以适应,以及我是否回到旧的https://domain.com/myadmin/ tab ,或者打开另一个新的https://domain.com/myadmin/标签,突然我的旧会话消失了,我必须重新进行身份验证。
目前,我们的会话数据存储在Memcache中。我们启用SSL的节点是一台机器。我们的非SSL站点在十几个节点之间进行负载平衡。所有节点都通过NFS共享一个公共代码库,因此代码在所有节点上都是相同的,无论是否安全。
经过大量的潜伏和阅读后,我想知道它是否与php.ini的session.cookie_secure设置有关...但是由于我们强制每个人使用安全/ myadmin /面板重新进行身份验证,似乎安全会话正在消失。
我认为问题是解决SSL请求的节点的本地问题。如果我们打开一个选项卡到https://domain.com/myadmin/并登录,然后删除/ myadmin /路径,只需浏览整个网站https://domain.com/,我们的会话似乎永远不会消失。但是,只要我们点击浏览器中的链接强制我们访问网站的非安全版本,我们的安全会话就会失败。
答案 0 :(得分:2)
PHPSESSID _SECURE
或
PHPSESSIDS
为了您的安全
连接),所以你不要覆盖
用户浏览器中的cookie。答案 1 :(得分:1)
这是正在发生的事情。
正如Yzmir所说,解决方案是将会话密钥名称更改为不同