这个问题询问了Django SECRET_KEY
值的用途. 该问题的答案之一表示"它需要具有加密强大的entopy(sp)(计算机难以猜测)并且在所有Django实例之间是唯一的."
这有点模棱两可:如果我说例如将一个Django应用程序部署到负载均衡器后面的多个Web服务器上,那么每个应用程序是否都有自己的不同SECRET_KEY
,或者应该SECRET_KEY
在所有实例之间共享?
对于相同的Django应用程序secret key
,如果负载平衡在会话中重定向其流量,则应使用相同的应用程序以确保相同的客户端可以正确使用该服务。否则,肯定会出现不确定的行为。更具体地说,所有这些事情都会中断。
会话,数据解码将中断,这对于任何会话后端(cookie,数据库,基于文件或缓存)均有效。
已发送的密码重置令牌无效,用户将不得不询问一个新的密码。
注释表单(如果使用django.contrib.comments)将无法验证它是否在值更改之前被请求并在值更改之后被提交。我认为这是非常小的,但可能会使用户感到困惑。
消息(来自django.contrib.messages)不会在与注释表单相同的计时条件下验证服务器端。
来源。附带说明一下,我完全同意secret_key
Django 的方面尽管很容易解释,但仍然感到危险和神秘,并且在文档中没有任何明确的说明。