Session 理解会话到期

Session 理解会话到期,session,web-applications,Session,Web Applications,查看,每次会话过期时,用户必须执行相同的预验证-->验证-->…步骤才能创建新会话吗 例如,如果会话过期,web应用需要身份验证,用户是否必须在获得新会话之前重新登录web应用?是,用户必须再次登录。另外,新会话获得新会话id也很重要,因为攻击者可能已经获得了会话id。如果重新验证相同的会话id,攻击者也将获得访问权限。看 根据安全要求,您可能还必须为每个会话实施最长使用时间。通常,攻击者会接管会话并尽可能长时间地保持其活动状态。在一定时间后使会话过期(即使会话处于活动状态)是确保攻击者只能在有

查看,每次会话过期时,用户必须执行相同的
预验证-->验证-->…
步骤才能创建新会话吗


例如,如果会话过期,web应用需要身份验证,用户是否必须在获得新会话之前重新登录web应用?

是,用户必须再次登录。另外,新会话获得新会话id也很重要,因为攻击者可能已经获得了会话id。如果重新验证相同的会话id,攻击者也将获得访问权限。看


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

会话使用cookie进行维护

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

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

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


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

,您可以使用cookies实现记住我的功能。使用
记住我
功能,这对会话过期和续订有何影响?@Kevin您将拥有两个cookies,它们都存储唯一的
id
。会话数据的会话引用的
id
记住我
引用了登录的
用户ID
。会话ID通常在一段时间不活动(例如30分钟)后无效。
记住我
信息和
id
的有效期为3个月。如果不存在会话
id
,但存在有效的
记住我
id
,则将创建会话。但是,如果在会话到期时,我的web应用程序未使用
记住我
功能,您需要特别小心使用
记住我
功能(如果以错误的方式实现,您将面临严重的安全问题),我需要确保允许我的用户重新进行身份验证,以便可以创建新会话?要添加到这一点,会话通常在cookie中维护,但也可以使用URL重写,其中会话ID通过容器附加到所有链接。不过现在已经没什么用了。