调用invalidate后重新使用会话ID

Phi*_*hil 5 java jsp jrun httpsession

我继承了一个非常古老的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不是很熟悉,但是通过配置文档进行拖网并没有发现任何问题.