重复使用相同的会话ID必然不好?


3

这个问题与特定的基于php的web-app中的会话ID管理有关。

该web应用使用相同的会话ID对于每个会话的固定用户。因此,在注销应用程序之后,下次用户登录时,会将相同的会话ID作为cookie发布。但是,当用户没有登录时,应用程序不允许使用该cookie(重新发送具有相同cookie的HTTP请求会被转发到登录页面)。

这被认为是一个坏的安全习惯?如果相同的会话ID用于全部用户?

9

滚动你自己的会话管理系统是极其危险的,因为a lot can go wrong with a session。在PHP中,您应该只使用session_start()和超全局的$_SESSION

通过每个用户登录时使用相同的会话ID,那么就改变你的密码是没有意义的。有一个令牌总是允许访问。攻击者可以将此会话与XSS组合,或者由于传输层安全性不足,然后他们将始终访问系统。

使用为每个用户在同一会话失败的目的,如果你需要一个全球性的状态,使用数据库


7

与鲁克同意,但是他/她没有指出为什么你的建议在本质上是有缺陷当你使认证的会话状态无效时。

至少有一个特定的漏洞这造成:会话ID现在是可以预见的。考虑:Alice使用来自客户端A的系统 - 注销后,您可能已将该会话标记​​为不再验证,但会话令牌仍可从此客户端恢复。 Chuck来了,并从客户端A中提取会话ID。他无法访问系统,因为会话被标记为未通过身份验证。但是,Alice从客户端B重新登录 - 会话不再被锁定,Chuck可以自由访问。

如果为所有用户使用相同的会话ID,那么该怎么办?

WTF ??? !!!!

然后它不是会话ID。