【发布时间】:2015-01-15 12:02:58
【问题描述】:
我知道要保护 Web 应用程序免受跨站请求伪造,唯一安全的方法是实现 CSRF 令牌。我的问题是,是否也可以使用 CSRF 令牌来跟踪会话?为什么我们要实现不同的会话 ID 来跟踪会话?
【问题讨论】:
标签: session cookies token csrf sessionid
我知道要保护 Web 应用程序免受跨站请求伪造,唯一安全的方法是实现 CSRF 令牌。我的问题是,是否也可以使用 CSRF 令牌来跟踪会话?为什么我们要实现不同的会话 ID 来跟踪会话?
【问题讨论】:
标签: session cookies token csrf sessionid
CSRF 令牌是一个必须随机生成并与 EVERY GET 中的会话(用户)相关联的值,它显示了防止错误 POST 的表单。这个错误的 POST 也来自用户浏览器,因此,要对 POST 进行身份验证,您需要与存储在服务器内存中的令牌进行会话,以比较 POST 附带的令牌是否与用户会话中存储的相同。
此外,Web 应用程序需要在 GET 中识别用户,而 CSRF 令牌仅在 POST 中。
由于 HTTP 的断开连接性质,会话需要是静态的,以便随着时间和多个请求识别用户。 CSRF 在每次 GET 中都会发生变化,它不能像 session 一样使用。
另一方面。你的想法应该用什么服务器?每次 GET 创建一个新会话并将所有以前的会话数据复制到新会话?这太疯狂了。
看看蒙大拿州立大学的this pdf。它有助于我理解 CSRF。
【讨论】: