4

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

根据我们的安全团队良好的安全实践规定,应在每次请求时更改会话 ID,以防止会话劫持。

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

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

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

4

2 回答 2

1

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

于 2013-01-10T23:34:22.000 回答
1

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

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

于 2013-01-11T00:36:22.363 回答