【问题标题】:Can multiple endpoint use same CSRF token?多个端点可以使用相同的 CSRF 令牌吗?
【发布时间】:2023-01-27 18:06:06
【问题描述】:

我有多个端点的单页应用程序 (SPA),使用带有 JWT 令牌的 Singe Sing On(SSO)。我试图弄清楚如何初始化 CSRF 令牌,同时仍然使我的前端和后端逻辑尽可能简单。

我的问题是:有没有办法避免为每个端点生成 CSRF 令牌?例如,我可以在登录过程中生成 CSRF 令牌(首先获取 CSRF 令牌并在每个登录请求中轮换令牌),然后在每个后端验证一个 CSRF 令牌吗?如果有可能,如何实施?

我使用 X-CSRF 令牌,因此在服务器端将令牌设置为 cookie,然后客户端复制它以请求标头,最后服务器验证 cookie 和标头值是否匹配。我使用 django csrf 中间件,它还进行一些额外的验证以避免客户端自行生成令牌。这个额外的验证是我不太明白的

【问题讨论】:

    标签: single-sign-on single-page-application csrf


    【解决方案1】:

    在我看来,你的想法是不可能的。但是您可以与知道其他端点的代理进行通信。从我的角度来看,这将是最有意义的。所以你只需要这个端点的 CSRF 令牌。在服务器端,从代理到您的其他服务器,您不再需要 CSRF。但此解决方案意味着您需要一个额外的端点。

    【讨论】:

      猜你喜欢
      • 2017-02-10
      • 2019-03-22
      • 2011-09-07
      • 2018-06-05
      • 2023-03-17
      • 2021-04-21
      • 2018-10-11
      • 2014-01-02
      • 2020-11-22
      相关资源
      最近更新 更多