繁体   English   中英

Django SECRET_KEY是每个实例还是每个应用程序?

[英]Are Django SECRET_KEY's per instance or per app?

这个问题询问Django SECRET_KEY值的用途。 该问题的答案之一表示“它需要具有加密强大的entopy(sp)(计算机难以猜测)并且在所有Django实例之间是唯一的。”

这有点模棱两可:如果我说例如将一个Django应用程序部署到负载均衡器后面的多个Web服务器,是否应该每个都有自己独特的SECRET_KEY ,或者SECRET_KEY应该在所有实例之间共享?

对于相同的Django应用程序,您应该使用相同的secret key以确保在负载平衡重定向他/她的流量中间会话时,同一客户端可以正确使用该服务。 否则,肯定会出现未定义的行为。 更具体地说,所有这些都会破裂。

  • 会话,数据解码将中断,这对任何会话后端(cookie,数据库,基于文件或缓存)都有效。
  • 密码重置令牌已经发送不起作用,用户将不得不问一个新的。
  • 注释表单(如果使用django.contrib.comments)将不会验证是否在值更改之前请求并在值更改后提交。 我认为这是非常小的,但可能会让用户感到困惑。
  • 消息(来自django.contrib.messages)将不会在与注释表单相同的时间条件下验证服务器端。

来源 作为旁注,我完全同意Django的secret_key方面感到危险和神秘,尽管它是可以解释的,并且没有任何明确的文档处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM