客户已要求对我们的Java Web应用程序进行一些安全性增强,包括以下内容:
根据我们的安全团队的良好安全措施说明 应在每个请求上更改会话ID以防止会话 劫持。
我理解在身份验证时分配新会话ID的重要性(我们已经这样做了),但这个请求似乎有点极端。
如果基于每个请求重新分配,听起来它不再是会话ID,而是可以与会话ID一起使用的一次性请求ID。
所以,我的问题:这种策略真的是一种常见的安全措施吗?如果是这样,有人可以指点我就该主题,实施技巧等进行讨论吗?
答案 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)