在哪里存储CSRF令牌? Memcached的?

时间:2017-04-23 15:29:04

标签: java session memcached cluster-computing

我运行了一个集群应用程序,我在用户会话中存储了CSRF令牌,但是我遇到了一些问题。当收到同一个用户的几个同时请求(相同的会话ID)时,它们重叠,我丢失了一些令牌。

以下是发生的事情:

  1. R1击中后端&从memcached
  2. 检索会话
  3. R2击中后端&从memcached
  4. 检索会话
  5. R1& R2在会话副本中有零令牌
  6. R1添加有效令牌并更新memcached。
  7. R2添加有效令牌并覆盖步骤4中R1所做的更改。
  8. 当用户提交在R1中传递的页面时,它会失败,因为该令牌无效,并且必须重新加载并重新提交。

    我已经在生产中使用了memcached,我想在memcached中存储CSRF令牌,但我不确定它是不是一个好主意。

    我使用JVM堆栈运行3个后端。

0 个答案:

没有答案