【发布时间】:2018-03-19 14:29:48
【问题描述】:
在同步器令牌模式中,服务器生成一个随机令牌,并且该令牌必须由客户端每次提交的表单提交。客户端如何知道在服务器中创建的 CSRF 令牌?
【问题讨论】:
在同步器令牌模式中,服务器生成一个随机令牌,并且该令牌必须由客户端每次提交的表单提交。客户端如何知道在服务器中创建的 CSRF 令牌?
【问题讨论】:
根据 GET 请求,您可以将令牌放入结果页面。它既可以作为隐藏字段写入表单,以便在发送表单时自动发送,也可以以元标头 (<meta name="csrftoken" content="...">) 或几乎任何其他方式编写。
如果只是简单的旧表单帖子,隐藏字段可能是最简单的。如果涉及 javascript(ajax 请求),您可能最好在页面中的一个中心位置(如元标题),任何 javascript 都可以从中获取它。
此外,对于表单,您可以为每个新页面下载生成不同的令牌,但对于 ajax-heavy 应用程序更改令牌会导致问题 - 对于大多数应用程序,每个登录会话一个令牌是可以接受的。
【讨论】:
index.html 文件怎么办?