Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用户注销后JSessionID未更改-这是安全问题吗?_Java_Security_Servlets_Weblogic - Fatal编程技术网

Java 用户注销后JSessionID未更改-这是安全问题吗?

Java 用户注销后JSessionID未更改-这是安全问题吗?,java,security,servlets,weblogic,Java,Security,Servlets,Weblogic,在WebLogic应用程序的一些调试过程中,我注意到用户注销后JSESSIONID不会改变 我想知道这是否是我需要关心的事情 这个应用程序是在WebLogic实例中运行的两个应用程序之一,我注意到它们都共享相同的JSESSIONID 参考以下内容: SRV.7.3会议范围 HttpSession对象的作用域必须在应用程序(或servlet)上 (上下文)级别。底层机制,例如用于 建立会话,对于不同的上下文可以相同,但是 引用的对象,包括该对象中的属性,决不能 由容器在上下文之间共享 这表明,最终

在WebLogic应用程序的一些调试过程中,我注意到用户注销后JSESSIONID不会改变

我想知道这是否是我需要关心的事情

这个应用程序是在WebLogic实例中运行的两个应用程序之一,我注意到它们都共享相同的JSESSIONID

参考以下内容:

SRV.7.3会议范围

HttpSession对象的作用域必须在应用程序(或servlet)上 (上下文)级别。底层机制,例如用于 建立会话,对于不同的上下文可以相同,但是 引用的对象,包括该对象中的属性,决不能 由容器在上下文之间共享

这表明,最终由WegLogic选择如何管理这些JSESSIONID值,我不应该试图从值的变化(或缺少值)中解释含义

此外,我在应用程序上连接了一个
HttpSessionListener
,我看到调用了
sessionDestroyed
方法

考虑到这两个元素,我认为JSESSIONID不会改变是安全的。然而,这与我习惯的行为不同,因此我想验证我的假设


JSSessionID不更改是否是一个安全问题?

不,它不应该是一个巨大的安全问题,因为所有与该会话实际关联的数据都将被丢弃。
JSESSIONID
只是该(现在不存在)数据的一个键

但是,如果希望在每次注销/登录时更改
JSESSIONID
,则可以实现注销功能,以便在用户注销时显式删除
JSESSIONID
cookie。然后,服务器将在他们的下一个请求中为他们分配一个全新的会话/id

当然,如文档中所述,如果您有多个上下文,而这些上下文恰好都依赖于单个
JSESSIONID
cookie,那么从一个上下文中删除它实际上就是从所有上下文中删除它,从而有效地将用户从服务器上的每个上下文中注销。尽管在实践中,有多个面向用户的上下文并不常见,每个上下文都有自己的登录/会话状态