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

2024-01-09

这个问题 https://stackoverflow.com/questions/7382149/purpose-of-django-setting-secret-key/47117966?noredirect=1#comment90264587_47117966询问 Django 的目的SECRET_KEY价值。该问题的答案之一 https://stackoverflow.com/a/47117966/808804声明“它需要具有密码学上强大的熵(因此)(计算机很难猜测)并且在所有 Django 实例之间是唯一的。”

这有点含糊:如果我说,例如,将一个 Django 应用程序部署到负载均衡器后面的多个 Web 服务器上,那么每个服务器都应该有自己不同的SECRET_KEY,或者应该SECRET_KEY在所有实例之间共享?


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

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

source https://stackoverflow.com/questions/15170637/effects-of-changing-djangos-secret-key。顺便说一句,我完全同意secret_keyDjango 的一个方面让人感觉危险和神秘,尽管它很容易解释,并且文档中没有任何清晰的处理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django SECRET_KEY 是每个实例还是每个应用程序? 的相关文章

随机推荐