httpservletrequest-创建新会话/更改会话ID

我正在维护Java Web应用程序。

通过登录代码,它可以通过HttpServletRequest的getSession()方法从HttpServletRequest中获取一个HttpSession。(它在会话中使用一些值进行认证)

但是,我担心会话固定攻击,因此在使用初始会话后,我想开始一个新会话或更改会话ID。这可能吗?

回答:

Servlet 3.0 API不允许您更改现有会话上的会话ID。通常,为了防止会话固定,您将只想创建一个新的并使旧的无效。

您可以像这样使会话无效

request.getSession(false).invalidate();

然后创建一个新的会话

getSession(true)(也getSession()应该工作)

显然,如果会话中有要保留的数据,则需要将其从第一个会话复制到第二个会话。

请注意,对于会话固定保护,通常认为只对身份验证请求执行此操作即可。但是更高级别的安全性涉及为每个请求都抛弃旧会话并进行新会话。

以上是 httpservletrequest-创建新会话/更改会话ID 的全部内容, 来源链接: utcz.com/qa/410169.html

回到顶部