1

StackOverflow 上有很多关于会话固定的问题和答案,但是,我仍然对一件事感到困惑。人们经常建议将会话存储在 cookie 中不足以克服会话固定问题,您应该在登录后轮换会话 ID。我可以想象,如果你只使用 session id 来识别用户,你可能仍然容易受到攻击。但是,我想问一个具体的案例。

假设您使用签名的 cookie 来存储整个会话。登录时,您将标识用户的 id 放入 cookie 中。注销后,您删除 id。您不会更改会话 ID,但是当您更改会话本身并对其进行签名时,我看不到任何利用这种设计的攻击场景。会话固定是否仍然是一个问题,因此在这种情况下是否仍然需要会话 ID 轮换?如果是,您能否提供可以使用的攻击?谢谢你。

4

1 回答 1

1

会话固定的基础是攻击者可以让受害者使用攻击者可以访问的会话。这通常是通过诱使受害者使用攻击者已知并且在身份验证后不会更改的某个会话 ID 来完成的。

现在,您所描述的听起来不像是会话标识符,而是用户身份验证数据的简单客户端数据存储。

但是,如果您使 cookie 数据依赖于再次依赖于经过身份验证的用户的数据,该用户又由服务器签名,那么它肯定会在身份验证后发生变化,并且不会被攻击者知道。那么该方案的安全性取决于它的实际实现。

于 2012-09-16T20:11:12.373 回答