【问题标题】:How can I offer both URL-based and COOKIE-based SESSION TRACKING depending on Cookie Support?如何根据 Cookie 支持同时提供基于 URL 和基于 COOKIE 的会话跟踪?
【发布时间】:2012-01-05 19:04:00
【问题描述】:

我有一个 PHP 网站,其中 20% 的访问者不支持 cookie。

如何根据 Cookie 支持同时提供基于 URL 和基于 Cookie 的会话跟踪?

换句话说,如果用户接受 cookie,那么我们使用基于 cookie 的会话跟踪。但如果他们不这样做,那么我们会切换到基于 URL 的会话跟踪,以便这些用户仍然可以使用该网站。

我不想失去 20% 的用户,我不想要一个 100% 基于 URL 会话跟踪的网站,因为这不仅会带来安全风险,而且还会带来一些我不想要的限制80% 的用户不得不忍受。

【问题讨论】:

  • 您取消了安全风险参数,恶意用户可以自己禁用 cookie。
  • @TJHeuvel:我特别指的是恶意用户劫持其他用户的会话或合法用户无意中通过电子邮件/IM 将其会话 URL 发送给朋友的安全风险。跨度>

标签: php session cookies session-cookies cookieless


【解决方案1】:

PHP 几乎可以自动为您完成这项工作。如果不能使用 cookie,它会将会话 ID 附加到所有链接。这应该适用于任何默认 PHP 安装。

【讨论】:

  • 这根本不是我的经验,可能是由于我继承的网站上的特定设置。事实上,看起来确实如此,session.use_trans_sid 的默认值必须为 true,但实际上为 false。你能链接到它说这是默认行为的地方吗?
  • 哦。你说的对。我的错。 Over here 它说默认值为 0。我相当确定我所有的 PHP 安装都使用了它。我现在很困惑。
  • 如何尝试在主页上设置 cookie,然后检查第二页上的 cookie 是否设置正确,如果不正确,则设置 session.use_trans_sid = 1 以便附加SID自动到URL?这样的东西会起作用吗?如果是这样,您能否编辑您的解决方案以合并此类内容,以便我接受?谢谢。
  • 我可以,但我必须深入研究 PHP 文档。你也可以自己做。 ;) 很抱歉,我无法提供更多帮助。也许别人会给你答案。
猜你喜欢
  • 1970-01-01
  • 2013-08-16
  • 2015-11-05
  • 2012-01-05
  • 1970-01-01
  • 2012-04-15
  • 2014-07-08
  • 2011-04-11
  • 2011-08-26
相关资源
最近更新 更多