在StackOverflow上有很多关于会话固定的问题和答案,然而,我仍然对一件事感到困惑。人们经常建议将会话存储在cookie中不足以克服会话固定问题,您应该在登录后轮换会话id。我可以想象,如果您只使用会话id来标识用户,您可能仍然容易受到攻击。然而,我想问一个具体的案例。
让我们假设您使用一个签名的cookie来存储整个会话。在登录时,您在cookie中输入一个标识用户的id。注销后,删除该id。您不会更改会话id,但当您更改会话本身并对其进行签名时,我看不到任何利用此设计的攻击场景。会话固定仍然是一个问题,因此,在这种情况下,会话id轮换仍然是必要的吗?如果是,你能提供一个可以使用的攻击吗?谢谢。
发布于 2012-09-17 04:11:12
会话固定的基本原理是,攻击者有可能让受害者使用攻击者有权访问的会话。这通常是通过诱导受害者使用攻击者已知且在身份验证后不会更改的某个会话ID来实现的。
现在,您所描述的内容听起来不像是会话标识符,而是用户身份验证数据的简单客户端数据存储。
但尽管如此,如果您使cookie数据依赖于数据,而该数据又依赖于另外由服务器签名的经过身份验证的用户,那么它肯定会在身份验证后更改,并且不会被攻击者知道。那么该方案的安全性取决于它的实际实现。
https://stackoverflow.com/questions/12404577
复制相似问题