gpt4 book ai didi

python - 集群中的 Django CSRF

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:13 26 4
gpt4 key购买 nike

有人可以给我举例说明 CSRF 在集群设置中如何工作吗?

我有一个托管 django 网站的 kubernetes 集群,并且偶尔会遇到 403 错误的问题。我在 kubernetes 中有多个站点负载均衡实例。

当 POST 从 1 个实例发送并由另一个实例处理时,CSRF 如何工作?

如果在填写表单期间更新了 docker 镜像,CSRF 站点是否可以正常工作?

谢谢!

最佳答案

Can someone example to me how CSRF works in the cluster setup?

与通常不应该的方式完全相同(CSRF 是跨站点请求伪造,即攻击)。为了防止这种情况发生,您可以向客户分发 secret token ,他们必须将其包含在后续请求中。您的后端必须验证 token 是否有效、适用,并且实际上是由可信来源颁发的。有几种方法可以做到这一点:

  • 您可以使用 MAC(在这种情况下,您拥有与 JSON WebToken 非常接近的东西)。
  • 您可以将 token 保存到某个受信任的存储中,并在后续请求时查询该存储。

这就是它的全部内容。

由于您的 CSRF 保护是由您上述选择的组合产生的,因此如何使其在分布式设置中工作还取决于 CSRF 保护方案的具体实现。

根据 Django 文档,默认的方法是使用“ secret ”,每次用户登录时都会重置该 secret 。这意味着如果两个后续请求访问不同的服务器会触发新的登录,则所有旧的 CSRF token 实际上已失效。因此基于此:

  • 您需要调整您的 Django 项目,以确保不同的实例可以在同一 session 中恢复工作,并且不会触发重新登录
  • 您的所有 Django 实例都需要能够访问相同的登录密码,以便其中任何一个实例都可以验证任何其他实例颁发的 CSRF token 。

关于python - 集群中的 Django CSRF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47479541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com