相关疑难解决方法(0)

为什么jsessionid会附加到每个网址?

我正在使用Apache Tomcat上的Spring框架部署应用程序.直接从Tomcat运行应用程序时,根本没有jsessionid附加到任何URL,但在将应用程序映射到域并尝试运行它之后,我在应用程序中的每个URL都附加了一个jsessionid.我尝试了Spring安全属性disable-url-rewriting但它不起作用; 它从URL中删除了jsessionid,但应用程序不再起作用,用户无法登录.

所以我想这是另一个问题.任何想法为什么会发生这种情况或如何解决它?

spring-security

6
推荐指数
2
解决办法
1万
查看次数

在复制JSESSIONID cookie时防止复制会话

背景:我在tomcat上部署了一个使用基于表单的身份验证的javaee webapp.当Web服务器收到登录请求时,它会将请求发送到专用的身份验证服务,该服务验证用户登录(用户ID和密码).成功验证后,用户的会话将在Web服务器中维护.

问题:我在这里编写了一个简单的webpp 源代码,以模拟场景.成功登录后,当前HttpSession实例将失效并创建新实例.对于后登录页面的每个请求,会话都经过验证.设置了一个新JSESSIONIDcookie,用于在会话期间识别用户,直到会话过期或用户注销.可以在浏览器的开发工具中轻松查看此cookie.如果我复制cookie并通过JavaScript(document.cookie="JSESSIONID=xyzz")在不同的浏览器中设置它,然后尝试访问帖子登录页面,则服务器将其识别为有效请求并成功验证会话.提供帖子登录页面,用户不会因用户ID和密码而受到质疑.

POC:用户打开浏览器和输入网址http://localhost:8080/mywebapp/与和日志admin和pass1234.成功登录后http://localhost:8080/mywebapp/home会显示主页.现在,JSESSIONIDCookie被复制并在FireFox中设置.用户进入http://localhost:8080/mywebapp/homeFirefox并显示主页而不会受到userId和密码的质询.

问题:如何通过多个浏览器复制相同的会话,如何防止这种情况?

在此输入图像描述

cookies session tomcat servlets java-ee

4
推荐指数
1
解决办法
5143
查看次数

标签 统计

cookies ×1

java-ee ×1

servlets ×1

session ×1

spring-security ×1

tomcat ×1