【发布时间】:2011-07-29 08:58:03
【问题描述】:
我正在编写一个用户系统,用户将使用 Twitter 的 API 登录,然后我会将信息与我让用户输入的一些额外信息一起存储在数据库中。我希望用户能够登录后返回,无需再次登录。我决定获取有关用户的所有相关信息,将其保存到数据库中,然后将会话 ID 和用户 ID 保存到另一个表中。最后,我会在用户的计算机上设置一个包含相同会话 ID 的 cookie,以便他们在整个浏览过程中保持登录状态。然后,如果他们关闭浏览器并稍后重新访问该站点,我会读取该 cookie,并进行比较使用会话表,获取用户 ID,并重建会话(使用新的会话 ID 更新会话表)。
我的问题是,会话 ID 有多随机?用户是否有可能获得与一周内未访问该站点的用户(因此 cookie 仍处于活动状态)分配给他们的相同会话 ID?如果发生这种情况,那么服务器可能会将新用户误认为是旧用户。我真的很想避免使用 IP 地址,因为人们可能会从移动浏览器访问该网站,而 IP 可能随时更改。
对此有什么想法吗?我只是想确保用户 A 和用户 B 在任何时间间隔内都不会获得相同的会话 ID。
【问题讨论】: