【发布时间】: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