如何隐藏SECRET_KEY?

How to hide SECRET_KEY?

我把我的 SECRET_KEY 放在 secrets.json 里,那个放在 .gitignore;在 settings.py 我从文件中读取了密钥。

底线:我的本地服务器正在读取密钥。但是当我想生成一个 git push heroku master 时,抛出一个错误,找不到文件。这是可以理解的!我将它添加到 .gitignore。相应的问题是:怎么办?为什么建议将 SECRET_KEY 隐藏在 git 之外的单独文件中,如果那样我们就不能将更改推送到服务器?

我在这里看到了出路:我可以在 settings.py 中显式注册我的密钥,将其推送到服务器上,再次将其隐藏在文件中,将其推送到 github 存储库中。

但是它有多安全? SECRETS_KEY 是否仅对 public 个存储库隐藏?

您正在正确处理机密,因为您没有将这些机密未加密地放入您的存储库。为了解决这个问题,我通常做的是在 settings.py

中添加第二次检查
if os.path.exists('secrets.json'):
   # read secrets from json file
else:
    SECRET_KEY = os.environ['DJANGO_SECRET_KEY']

并且在 heroku 中,您可以使用 the value that you want using config vars 设置具有该名称的环境变量。通过这种方式,您的秘密可用于 heroku 和本地,但不会放入您的存储库中。

secrets.json 我们有时会误认为是一种损坏的语言。还是很安全的,就是语言混乱 也许 git push heroku master 已经被接受并且还没有他们需要密钥的实例。