PHP / Symfony2中每个用户两个会话

时间:2013-03-23 01:21:36

标签: php symfony

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

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

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

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

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

  3. Symfony2是否会对此做任何特别的事情?我知道它通过内置的类很好地处理会话,但它在使用安全cookie方面做了哪些特别的事情?

1 个答案:

答案 0 :(得分:3)

对于(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安全<或者