具有AngularJS App的CSRF令牌到期和更新策略

时间:2017-01-04 18:16:26

标签: javascript angularjs cors csrf

我有一个单页的javascript应用程序(用AngularJS编写),它与后端进行交互,完成所有请求(GET,POST,PATCH,DELETE等)。

初始CSRF令牌通过页面中的标记插入服务器端。

然而,令牌会定期到期,导致应用程序从最终用户的角度出发,没有明显的理由停止工作(谁不足以打开控制台)。这对用户体验来说太可怕了。

我如何确保最终用户永远不会发生这种情况?

如果我定期ping服务器应用程序端以获取新令牌,我仍然会创建一个disfunction窗口(令牌过期和下一次调度ping)。

想到一些想法/问题:

  1. 我应该在使用socket.io之类的东西时以某种方式'推送'新的CSRF令牌吗?
  2. 是否存在某种方式“自动捕获”来自AngularJS一侧的无效CSRF令牌引起的异常,通过请求新令牌然后重新执行请求来处理它? (也许是通过$ http服务的一些全局配置。)
  3. 认为自动刷新页面本身是一个有效的解决方案,因为这对UX非常具有破坏性。
  4. 我想要的解决方案不比当前设置更少安全,但如上所述具有改进的用户体验方面。

    P.S。我的后端是Python / Flask,但我不相信这对我的问题很重要。

0 个答案:

没有答案