我的申请是单页申请。客户端 - 服务器通信正在通过ajax API运行,除了第一页加载(index.html / php)和模板是基于前端的。服务器只有有效的响应是json。
每个表单提交都是使用javascript处理的。
服务器令牌验证不是此问题的一部分。
我的第一次流程
但是这个流程有问题,一旦用户打开另一个窗口,csrf令牌就不会对前一个窗口有效。
我的第二次流程
(请注意,此流服务器不会验证cookie本身,而是验证我们从cookie中获取的值。)
此流程略好一些,用户可以打开多个窗口,但当时只有一个请求有效。
我的第三次流程
与第二个流程相同,但是只有一个csrf令牌,服务器提供令牌池。用户被限制请求尽可能多的请求,因为池的大小(实现者选择)。请求当时只使用一个令牌,此令牌被标记为"正在使用"。每次请求命中服务器时,服务器都会使用新值更新池中的csrf令牌。
问题: 你会认为第二和第三流是安全的做法还是有办法以某种方式欺骗这个? 是第三流"应用程序是否持续"?