https和http之间的PHP SESSION变量

时间:2011-01-14 08:28:51

标签: php http session ssl https

我的网站有一个安全区域(https)和网站的其余部分,即http。使用会话变量登录https端的东西,一切都很好用,安全区域功能非常好。

我的问题: 我在网站的每个http页面顶部都有一个“登录/注册”按钮。我希望这能反映登录状态并更改为“注销”,还有一些其他登录按钮,只需重定向到https页面。我不是试图以任何方式操纵http页面上的任何数据或其他安全信息。

在IE8中,http(在主页上)检测到用于登录的https创建的会话变量,并且它正确显示备选的“注销”链接。但是,在所有其他浏览器中,会话变量不在http中。在不造成巨大安全漏洞的情况下解决此问题的最简单方法是什么?哦,网址是相同的,除了http和https。

2 个答案:

答案 0 :(得分:1)

许多站点使用的一种简单方法是通过脚本实际上在客户端加载按钮,该脚本向HTTPS URL发出请求以确定用户是否已登录,而不是它的HTML是HTTP服务页面的一部分。

答案 1 :(得分:1)

如果您想保护会话cookie,您需要确保浏览器仅以HTTPS发送cookie。因此,任何通过HTTP通信确定登录状态的方法都是不安全的。

I +1解决方案Amber发布。