django - 将 SECRET KEY 放在环境变量中是否比将其放在未跟踪的设置文件中更好?

标签 django django-settings secret-key dev-to-production

在项目的 settings.py 文件分为基础文件、开发文件和生产文件的场景中,并且 VCS 中仅跟踪基础文件。如果 SECRET_KEY 被硬编码在生产设置文件中,是否会出现问题?或者将其放在环境变量中是更好的选择吗?如果是这样,为什么?

从系统中提取它是否比在文件中以纯文本形式写入更安全?

最佳答案

我想说这两种方法的安全性是相同的。写在文件中(未提交到源代码存储库)或作为环境变量将具有相同的效果。

如果您的系统因某人访问服务器的方式而受到损害,这两种方法都会暴露您的安全 key 。所以,这不会有太大区别。

现在,我想说使用环境变量是一个更好的策略。但与安全无关。但通常依赖未提交的文件来运行项目并不是一个好主意。这是著名的在我的机器中工作问题的原因之一。这也使得项目的初始设置对于新手来说变得困难。

对于这种设置和配置管理,有一个很棒的 python 库,名为 Python Decouple 。值得一试。我在我使用的每个 Django 项目中都使用它。

关于django - 将 SECRET KEY 放在环境变量中是否比将其放在未跟踪的设置文件中更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48832355/

相关文章:

jquery - 我缺少什么? Django - Ajax

python - 错误 : The program 'django-admin' is currently not installed

python - Django - 为管理错误电子邮件使用不同的电子邮件后端

python - 在 Django 中,如何在项目外的新应用程序中重用 settings.py

kubernetes - GAE 从无人机管道激活服务帐户(k8s 上的无人机): No key could be detected

python - 无法匹配 Django 中 URL.conf 中的 URL?

python - Gunicorn 和 django 设置模块

Django:安全中间件使站点崩溃

java - 我应该多次使用同一个 key 吗?

ruby-on-rails - 在部署到 Heroku 时使用 Rails secrets.yml 而不将 key 暴露给公共(public) repo 的分步说明