【问题标题】:Django App deployed on Heroku works despite wrong SECRET_KEY尽管 SECRET_KEY 错误,但部署在 Heroku 上的 Django 应用程序仍然有效
【发布时间】:2021-10-18 09:13:42
【问题描述】:

在我的 Django 项目中,我有一个 .env 文件,其中包含我的 DJANGO_SECRET_KEY 环境变量:

export DJANGO_SECRET_KEY=dummysecretkey123

在初始化 repo 之前,我在 .gitignore 文件中添加了对 .env 文件的引用,因此 SECRET_KEY 在 git 跟踪的任何 repo 中都不可见

在我的settings.py 中,我将SECRET_KEY 设置如下:

SECRET_KEY = env.str("DJANGO_SECRET_KEY")

为了在 Heroku 上部署,我通过 Heroku 仪表板中的 Config Vars 添加了 SECRET_KEY - 一切都按预期工作。

然后出于好奇,我将 Heroku 中的 SECRET_KEY 更改为错误的值以查看其效果。令我惊讶的是,该应用程序仍然在线并且可以正常工作。我重新审视了所有测功机,但没有任何改变。然后我通过heroku run python manage.py shell > import os > print(os.environ)检查了Heroku服务器的环境变量,可以看到SECRET_KEY故意设置的错误值

我在这里缺少什么? SECRET_KEY 的目的不是为了保护我的应用,也就是说如果设置不正确,应用就不应该运行?

【问题讨论】:

  • 这能回答你的问题吗? Effects of changing Django's SECRET_KEY
  • 谢谢 - 如果我理解正确的话:错误的 SECRET_KEY 不会阻止应用程序运行,因为这不是它的目的,对吗?

标签: python django heroku secret-key django-deployment


【解决方案1】:

django 中 SECRET_KEY 的用途在official documentation 中有所描述。

它说:

密钥用于:

会话,

消息,

密码重置查看令牌,

加密签名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 2018-01-06
    • 2022-07-15
    • 1970-01-01
    • 2021-12-06
    相关资源
    最近更新 更多