相关疑难解决方法(0)

我可以关闭web.xml中的HttpSession吗?

我想完全消除HttpSession - 我可以在web.xml中这样做吗?我确信有容器特定的方法可以做到这一点(当我进行谷歌搜索时,搜索结果会出现这种情况).

PS这是个坏主意吗?在我真正需要它之前,我更喜欢完全禁用它们.

java session web.xml web-applications

55
推荐指数
3
解决办法
5万
查看次数

调用invalidate后重新使用会话ID

我继承了一个非常古老的JSP应用程序(JDK 1.3.1_15),并试图插入会话固定漏洞.

我在使用身份验证后成功地使当前会话无效,HttpSession.invalidate()但是在创建新会话时,会重新使用旧会话ID.

<%
// login.jsp
if (authenticated) {
    request.getSession().invalidate();

    // create new session and store data
    HttpSession session = request.getSession();
    session.putValue(...);
    // etc

    response.sendRedirect("logged-in.jsp");
    return;
}
%>
Run Code Online (Sandbox Code Playgroud)

我可以在HTTP监视器中看到新的会话分配,它只是再次使用相同的号码.

-- Initial request response --
HTTP/1.1 200 OK
Set-Cookie: JSESSIONID=6a303082951311647336934;path=/

-- login.jsp request response --
HTTP/1.1 302 Moved Temporarily
Location: http://example.com/logged-in.jsp
Set-Cookie: JSESSIONID=6a303082951311647336934;path=/
Run Code Online (Sandbox Code Playgroud)

在我使用session.invalidate()第二个Set-Cookie响应头之前根本不存在.

有没有人对如何生成新的会话ID有任何建议?我对JRUN4不是很熟悉,但是通过配置文档进行拖网并没有发现任何问题.

java jsp jrun httpsession

5
推荐指数
0
解决办法
1万
查看次数

如何防止 JSESSIONID 显示在 URL 中

我已经使用 Google Datastore 在 servlet 中创建了一个登录页面,它工作正常。但有时它会在 URL 中显示 JSESSIONID。

如何阻止 JSESSIONID 通过 URL 发送?为什么它通过 URL 而不是请求消息传递?

java servlets jsessionid google-cloud-datastore

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