【问题标题】:Cookie less sessions in PHPPHP 中的无 Cookie 会话
【发布时间】:2011-08-18 10:50:53
【问题描述】:

对于我项目的一个(奇怪)要求,我想使用无 cookie 会话。同时“session.use_trans_sid”也无法开启:(

请问有没有其他的出路??

谢谢 马尼什

【问题讨论】:

  • 为什么不能开启session.use_trans_sid
  • 愚蠢的答案是“这是要求”..但我猜这是为了避免 SESSIONID 显示在 URL 中
  • 那就没办法了。会话 ID 需要以某种方式传输。每个 cookie 或每个 URL。

标签: session-cookies sessionid php


【解决方案1】:

创建一个自定义会话管理器,根据例如 IP 地址和用户代理以及其他识别因素来识别用户(因为 IP+UA 可能不是唯一的,也可能不会是唯一的)。另一个(丑陋的)解决方案是自己实现 use_trans_sid 功能,方法是手动(如果它是一个小站点)或使用隐藏表单(非标准)向每个链接添加会话标识符 GET 参数。

【讨论】:

  • IP 地址和用户代理标识符的组合唯一!
  • 不,不一定——但这只是一个例子。
  • 还有一个非常不可取的例子。
  • 编辑了答案以反映它绝对不是一个完整的解决方案。
  • 答案中的链接已失效。
【解决方案2】:

如果您真的想要没有 cookie 的会话,您总是可以手动将 SID 放入所有 URL。人们过去经常这样做。 :-)

【讨论】:

    【解决方案3】:

    唯一的其他选择是将会话数据保留在客户端上,并随每个请求在服务器之间来回传递,尽管从技术上讲,这将是一个无会话架构。
    这意味着对于 GET,每个链接都必须重写以包含所有会话变量,而对于 POST,它们必须作为隐藏字段包含在内。

    【讨论】:

      猜你喜欢
      • 2012-01-21
      • 2019-04-24
      • 2011-11-19
      • 2014-03-22
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多