登录后应重新生成会话ID

时间:2017-08-07 09:46:12

标签: java

我有一个要求,其中会话ID在登录后应该无效,并且新的会话ID应该重新生成,

像这样,Pre-cookie和Post Cookie不应该相同,Post cookie应该在服务器端验证。

我使用这段代码使会话无效:

req.getSession(false).invalidate(); 
req.getSession(true);

我可以更改会话ID,但会注销。我使用burp工具套件测试了相同的场景。我得到了这些结果:

登录时:

Cookie: navi=1-1-0-; SOSESSIONID=pxtc730f4259; SSO_ID=4419102748602016135; CSSOSESSIONID=20971435-a754-43d5-aa56-7083e2dba55b; JSESSIONID=jpofvmzlses2
Connection: close
Upgrade-Insecure-Requests: 1

登录后:

Cookie: SSO_ID=; navi=1-1-0-; SOSESSIONID=ssnuqpjpal2i; SSO_ID=323568307087821651; CSSOSESSIONID=20971435-a754-43d5-aa56-7083e2dba55b; JSESSIONID=jpofvmzlses2
Connection: close

但之后如果我点击GUI中的任何内容,我将重定向到Login Page。

您能否帮我告诉我如何在登录后重新生成会话ID,以便同一个ID不会继续存在?

1 个答案:

答案 0 :(得分:0)

要处理session fixation,您可以在登录用户之前使会话无效并启动新会话。

获取用户名和密码后,使旧会话无效并创建新会话,然后检查登录凭据,这应该可以解决问题。