【问题标题】:PHP - What happens if I get two equal session id?PHP - 如果我得到两个相等的会话 id 会发生什么?
【发布时间】:2017-08-31 03:10:10
【问题描述】:

我读到会话 ID 是使用允许以极小概率获得两个相等 ID 的算法创建的。但是如果我得到两个相等的会发生什么?我真的不知道会话是如何工作的,但我想我将能够访问存储在具有相同 ID 的人的 $_SESSION 数组中的数据。
在这种情况下,这不会做一件积极的事情。是否有可能拥有一个真正唯一的会话 ID?
谢谢!

【问题讨论】:

  • 这个概率非常低,你不应该浪费另一个电子担心它。
  • 那周你出去买彩票
  • 人类对概率有着可怕的直觉。 “微小概率”是一个数学真理,但这并不意味着它会在实践中发生。
  • @RiggsFolly:1000 年听起来相当乐观。我怀疑这种概率更类似于量子隧道效应,导致两个用户中的一个手直接穿过他们的鼠标并且无论如何都无法使用浏览器。
  • @David Oooo 我需要查找quantum tunneling,这听起来很有趣。运气好的话,也许 2 位用户实际上可以牵手 :)

标签: php session url cookies


【解决方案1】:

生成两个相等的会话 ID 的可能性不大。当然,这取决于用于生成 ID 的算法。

如果您想知道如何生成会话(例如 PHP),请查看此处:PHP session IDs -- how are they generated? 正如您所读到的,这些会话并不是完全随机的,并且使用了用户的 IP 地址和发布时间等要素,从而限制了谁能获得极不可能相等的会话 ID 以及何时获得。

此外,您可以通过限制会话到期时间、允许使用的远程 IP 和域来限制相同的会话 ID 生效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 2016-09-14
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    相关资源
    最近更新 更多