0

查看OWASP 会话管理备忘单,每次会话过期时,用户是否必须通过相同的Pre-Auth --> Auth --> ...步骤来创建新会话?

例如,如果会话过期并且 Web 应用程序需要身份验证,用户是否必须重新登录 Web 应用程序才能获得新会话?

4

2 回答 2

1

会话由 cookie 维护。

Http 是一种无状态协议。对服务器的每个请求都是独立工作的。没有请求包含有关先前请求的任何信息。

假设一个名为A登录到该站点的用户。该站点使用会话并为用户设置会话数据。服务器在内部创建一些价值并与特定用户关联。计算一个值12345并将其与 user 关联A。服务器决定将此值的名称命名为sessionId. 它发送sessionIdcookie,此 cookie 将存储在用户的浏览器中。下次用户A发出请求时,此 cookie 将被发送到服务器。服务器读取 cookiesessionId并找到它。然后它会查看这个 cookie 中的值与哪个用户12345相关联。它发现该值与 user 相关联A,因此它与A发出请求的 user 相关联。

说这个cookie过期,可能是由于各种原因。任何一个用户都删除了他的cookie。或者在某些天之后,服务器清除用户和会话之间的这种关联。在这种情况下,服务器将无法知道发出请求的用户是谁。因此,用户登录的整个流程,都必须进行生成。

所以,是的,如果会话过期并且 Web 应用程序需要身份验证,用户将不得不再次登录

于 2013-05-02T14:45:19.180 回答
1

是的,用户必须重新登录。此外,新会话获得新的会话 ID 也很重要,因为攻击者可能已经获得了会话 ID。如果您重新验证相同的会话 ID,攻击者也将获得访问权限。请参阅会话固定攻击

根据安全要求,您可能还必须为每个会话实施最长生命周期。通常攻击者会接管一个会话并尽可能长时间地保持它的活动。在一定时间后过期会话,即使它是活动的,也是确保攻击者只能在有限时间内访问的有效方法。

于 2013-05-02T14:44:07.667 回答