【问题标题】:Two sessions per user in PHP / Symfony2PHP / Symfony2 中每个用户两个会话
【发布时间】:2013-03-13 00:22:03
【问题描述】:

我正在使用 Symfony2,但这可能只是一个 PHP 问题。

  1. 根据我的理解(如果我错了,请更正)如果我将会话 cookie 设置为安全,那么 cookie 只会在安全连接上发送。因此,在非安全连接上,服务器实际上无法记住基于用户访问的任何内容。我只是想确认一下我对此的理解。

  2. 是否可以有两个会话 cookie?一个用于所有协议来存储不安全的会话数据(例如,不是用户身份验证/登录),第二个会话将是仅安全的并处理登录授权。

    我知道我可以为奇怪的不安全的东西设置一个本地 cookie,但我真的希望能够使用 $_SESSION 两次(一次用于所有,一次用于 https-only)。

    我觉得使用安全 cookie 对于用户身份验证/登录至关重要,但我也希望能够在非安全页面上进行某种形式的会话。

  3. Symfony2 是否特别针对这些做任何事情?我知道它通过其内置类很好地处理会话,但它在使用安全 cookie 方面有什么特别的作用吗?

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    对于 (1) - 是的,你是对的

    对于 (2) - 您可以通过在查询字符串中传递 SessionID 来让 2 个单独的 $_SESSION(安全和不安全的)相互通信(可能带有一些哈希保护以避免顽皮的用户)。更多信息在这里Session lost when switching from HTTP to HTTPS in PHPSwitching between HTTP and HTTPS pages with secure session-cookie

    根据线程中的建议,如果可能的话,您还可以考虑将您的页面设置为 HTTPS,从而让您的生活更轻松

    对于 (3) - 我不是 Symfony2 方面的专家,但可以快速浏览一下文档,在这种情况下它没有任何特定工具可供您使用,除了支持设置是否希望您的 cookie 安全与否

    【讨论】:

      猜你喜欢
      • 2015-06-09
      • 1970-01-01
      • 2011-08-29
      • 2021-04-09
      • 2011-07-25
      • 2014-02-21
      • 2013-01-17
      • 1970-01-01
      • 2014-02-18
      相关资源
      最近更新 更多