首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从ssl移动到非ssl时不保存会话

从ssl移动到非ssl时不保存会话
EN

Stack Overflow用户
提问于 2008-11-21 12:53:19
回答 6查看 7.2K关注 0票数 9

我有一个登录屏幕,我强制将其设置为ssl,所以如下所示:https://www.foobar.com/login然后他们登录后,他们被移动到主页:https://www.foobar.com/dashbaord

但是,我希望在用户登录后将其从SSL上移出(以节省CPU),因此在检查他们实际上已登录到https://www.foobar.com/dashbaord之后,我会将其移至http://www.foobar.com/dashbaord

这似乎总是会清除会话变量,因为当页面再次运行时,它会确认它们已登录(就像所有页面一样),并且会话似乎不存在,因此它会将它们移到登录屏幕。

奇怪/发现:

  1. List item
  2. 第二次登录总是有效的,并且很高兴让我成功创建一个cookie第一次登录
  3. 如果我登录两次,然后注销,然后再次登录,我不需要两次登录(我似乎已经追踪到cookie存在的事实)。如果我删除cookie,我将返回两次logins.
  4. After第二次登录,我可以从ssl移出非ssl,会话仍然存在。
  5. 在第一次登录时,移到非ssl站点会完全清除会话,手动移回ssl站点仍会强制我再次登录。
  6. 第二次登录时使用与第一次完全相同的机制,通过ssl

我尝试过的:

nothing

  • Having蛋糕将会话存储在数据库中(而不是文件系统)- FF中的nothing

  • Testing、IE中的、XP机器上的Chrome。

因此,我觉得这是与正在创建但未被读取的cookie有关。

环境: 1. Debian 2. Apache 2 3. Mysql 4 4. PHP 5 5. CakePHP 6.会话保存为PHP默认文件

EN

回答 6

Stack Overflow用户

发布于 2010-11-22 01:56:05

虽然被接受的答案满足了OP的愿望,即“一旦登录,就将人们从SSL上移走”-但它是非常不安全的,因为它将用户会话暴露在劫持之下(参见Firesheep了解简单的漏洞利用)。

在CakePHP的默认行为(要求在用户通过SSL进行身份验证后为所有页面提供SSL)和接受的答案(提供所有未加密的经过身份验证的页面并公开经过身份验证的cookie)之间更好的折衷是,当且仅当页面需要身份验证时,才通过SSL提供加密的页面。

要实现这一点,一种简单的方法是维护两个会话cookies一个安全地提供并保存身份验证信息,另一个不安全地提供。支持这种双会话方法的一个简单实现将使用session_handler覆盖session.name,如下所示:

    if (env('HTTPS')) {
        ini_set('session.name', Configure::read('Session.cookie').'-SECURE');
    }else{
        ini_set('session.name', Configure::read('Session.cookie'));
    } 

这种方法需要记住的一点是,要从非SSL页面直接链接到需要身份验证的页面,将需要使用https显式链接-因为您将需要发送包含身份验证信息的会话cookie,而浏览器只有在链接被加密时才会这样做。

票数 4
EN

Stack Overflow用户

发布于 2008-11-21 12:58:20

首先,我是否正确理解了第二次登录使用与第一次完全相同的机制(通过HTTPS)?

除了在登录期间创建的会话之外,在不安全页面上的第一次点击是否会创建新的会话?

在第一次登录时,检查cookie是否没有设置Secure标志(这意味着cookie应该只通过安全的(HTTPS)连接发送)。

票数 3
EN

Stack Overflow用户

发布于 2010-02-06 02:35:21

您可以在配置文件中指定自己的会话处理设置(而不是编辑CakePHP库文件)。在配置文件中,您可以将session.cookie_secure设置为0,它将优先于/cake/lib/session.php中的设置。这将允许会话cookie用于SSL连接和非SSL连接。

这里有一个关于这个主题的博客文章:http://bakery.cakephp.org/articles/view/how-to-bend-cakephp-s-session-handling-to-your-needs

以及食谱中的一些文档:http://book.cakephp.org/view/173/Sessions

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/308659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档