为每个请求分配新会话ID的良好做法?

时间:2013-01-10 23:28:12

标签: java session-cookies sessionid

客户已要求对我们的Java Web应用程序进行一些安全性增强,包括以下内容:

  

根据我们的安全团队的良好安全措施说明   应在每个请求上更改会话ID以防止会话   劫持。

我理解在身份验证时分配新会话ID的重要性(我们已经这样做了),但这个请求似乎有点极端。

如果基于每个请求重新分配,听起来它不再是会话ID,而是可以与会话ID一起使用的一次性请求ID。

所以,我的问题:这种策略真的是一种常见的安全措施吗?如果是这样,有人可以指点我就该主题,实施技巧等进行讨论吗?

2 个答案:

答案 0 :(得分:1)

它没有坏处,但它可能非常复杂,实际上您只需要在安全级别更改时重新生成会话ID。另请参阅Session Hijacking - regenerate session ID on Security StackExchange

答案 1 :(得分:1)

为每个请求生成一个新的会话ID没有任何意义,它面对会话的概念。但是,包含一个请求ID以及所有会导致状态更改的请求(例如,表单提交)是一个非常明智的想法。

每个/请求ID的意图是防止CSRF(跨站点请求伪造)。见:https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF