Java 用户注销后JSessionID未更改-这是安全问题吗?
在WebLogic应用程序的一些调试过程中,我注意到用户注销后JSESSIONID不会改变 我想知道这是否是我需要关心的事情 这个应用程序是在WebLogic实例中运行的两个应用程序之一,我注意到它们都共享相同的JSESSIONID 参考以下内容: SRV.7.3会议范围 HttpSession对象的作用域必须在应用程序(或servlet)上 (上下文)级别。底层机制,例如用于 建立会话,对于不同的上下文可以相同,但是 引用的对象,包括该对象中的属性,决不能 由容器在上下文之间共享 这表明,最终由WegLogic选择如何管理这些JSESSIONID值,我不应该试图从值的变化(或缺少值)中解释含义 此外,我在应用程序上连接了一个Java 用户注销后JSessionID未更改-这是安全问题吗?,java,security,servlets,weblogic,Java,Security,Servlets,Weblogic,在WebLogic应用程序的一些调试过程中,我注意到用户注销后JSESSIONID不会改变 我想知道这是否是我需要关心的事情 这个应用程序是在WebLogic实例中运行的两个应用程序之一,我注意到它们都共享相同的JSESSIONID 参考以下内容: SRV.7.3会议范围 HttpSession对象的作用域必须在应用程序(或servlet)上 (上下文)级别。底层机制,例如用于 建立会话,对于不同的上下文可以相同,但是 引用的对象,包括该对象中的属性,决不能 由容器在上下文之间共享 这表明,最终
HttpSessionListener
,我看到调用了sessionDestroyed
方法
考虑到这两个元素,我认为JSESSIONID不会改变是安全的。然而,这与我习惯的行为不同,因此我想验证我的假设
JSSessionID不更改是否是一个安全问题?不,它不应该是一个巨大的安全问题,因为所有与该会话实际关联的数据都将被丢弃。
JSESSIONID
只是该(现在不存在)数据的一个键
但是,如果希望在每次注销/登录时更改JSESSIONID
,则可以实现注销功能,以便在用户注销时显式删除JSESSIONID
cookie。然后,服务器将在他们的下一个请求中为他们分配一个全新的会话/id
当然,如文档中所述,如果您有多个上下文,而这些上下文恰好都依赖于单个JSESSIONID
cookie,那么从一个上下文中删除它实际上就是从所有上下文中删除它,从而有效地将用户从服务器上的每个上下文中注销。尽管在实践中,有多个面向用户的上下文并不常见,每个上下文都有自己的登录/会话状态