在我的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仪表板中的配置变量添加了SECRET_KEY
-一切都如预期的那样工作。
然后出于好奇,我把Heroku的SECRET_KEY
改成了一个错误的值,看看它的效果。令我惊讶的是,这个应用程序还在运行。我重启了所有的电源,但没有任何变化。然后我通过heroku run python manage.py shell
检查了Heroku服务器的环境变量;import os
祝辞print(os.environ)
,可以看到SECRET_KEY
故意设置错误的值
我在这里错过了什么?SECRET_KEY
的目的不是为了保护我的应用程序,这意味着如果设置不正确,应用程序不应该工作?
SECRET_KEY在django中的作用在官方文档中有描述。
:
秘密密钥用于:
,
消息,
PasswordResetView令牌,
密码签署。