已经实现了csrf保护,使用session id的目的是什么?

问题描述 投票:0回答:1

我知道,为了保护 Web 应用程序免受跨站请求伪造,唯一安全的方法是实现 CSRF 令牌。我的问题是,是否也可以使用 CSRF 令牌来跟踪会话?为什么我们应该实现不同的会话 ID 来跟踪会话?

session cookies token csrf sessionid
1个回答
5
投票

CSRF 令牌是一个必须随机生成的值,并与 EVERY GET 中的会话(用户)相关联,该值显示防止虚假 POST 的表单。这个错误的 POST 也来自用户浏览器,因此,为了验证 POST,您需要一个具有存储在服务器内存中的令牌的会话,以比较 POST 附带的令牌是否与存储在用户会话中的令牌相同。

此外,Web 应用程序应该需要在 GET 中识别用户,而 CSRF 令牌仅在 POST 中。

由于 HTTP 的断开连接特性,会话需要是静态的,以便长时间识别用户和多个请求。 CSRF 每次 GET 都会改变,不能像 session 那样使用。

另一方面,服务器应该如何处理你的想法?每个 GET 请求创建一个新会话并将所有先前的会话数据复制到新会话?这太疯狂了。

查看蒙大拿州立大学的此 pdf。它帮助我理解了 CSRF。

© www.soinside.com 2019 - 2024. All rights reserved.