在 Pyramid 会话对象上调用 new_csrf_token() 方法是否会使先前发布的令牌无效?
Does calling the new_csrf_token() method on a Pyramid session object invalidate previously issued tokens?
使用 Pyramid web 框架,当在会话对象上调用 new_csrf_token()
方法时,它是否会使先前发出的 CSRF 令牌失效?
例如:
old_token = session.get_csrf_token()
new_token = session.new_csrf_token()
# Is old_token still valid for requests?
在 Pyramid 的会话对象之一上调用 new_csrf_token()
方法将使该会话之前发布的所有 CSRF 令牌失效。
Pyramid 的 ISession
接口只定义了两个处理 CSRF 令牌的方法,get_csrf_token()
和 new_csrf_token()
。此时框架的session接口不允许多个CSRF token同时存在。 (这忽略了带有签名 cookie 的奇怪边缘情况,这不应该影响 CSRF 保护的安全性。)
在内部,Pyramid 在请求的会话对象上调用 get_csrf_token()
方法,然后将返回值与请求中收到的令牌进行比较。
假设任何使用旧 CSRF 保护令牌的请求都会失败。
使用 Pyramid web 框架,当在会话对象上调用 new_csrf_token()
方法时,它是否会使先前发出的 CSRF 令牌失效?
例如:
old_token = session.get_csrf_token()
new_token = session.new_csrf_token()
# Is old_token still valid for requests?
在 Pyramid 的会话对象之一上调用 new_csrf_token()
方法将使该会话之前发布的所有 CSRF 令牌失效。
Pyramid 的 ISession
接口只定义了两个处理 CSRF 令牌的方法,get_csrf_token()
和 new_csrf_token()
。此时框架的session接口不允许多个CSRF token同时存在。 (这忽略了带有签名 cookie 的奇怪边缘情况,这不应该影响 CSRF 保护的安全性。)
在内部,Pyramid 在请求的会话对象上调用 get_csrf_token()
方法,然后将返回值与请求中收到的令牌进行比较。
假设任何使用旧 CSRF 保护令牌的请求都会失败。