【发布时间】:2018-07-27 16:36:58
【问题描述】:
在项目的 settings.py 文件被拆分为基础、开发和生产,并且在 VCS 中仅跟踪基础文件的场景中。如果 SECRET_KEY 在生产设置文件中硬编码,是否会出现问题。还是将它放在环境变量中是更好的选择?如果有,为什么?
从系统中提取它是否比在文件中以纯文本形式写入更安全?
【问题讨论】:
标签: django django-settings secret-key dev-to-production
在项目的 settings.py 文件被拆分为基础、开发和生产,并且在 VCS 中仅跟踪基础文件的场景中。如果 SECRET_KEY 在生产设置文件中硬编码,是否会出现问题。还是将它放在环境变量中是更好的选择?如果有,为什么?
从系统中提取它是否比在文件中以纯文本形式写入更安全?
【问题讨论】:
标签: django django-settings secret-key dev-to-production
我会说这两种方法的安全性是相同的。写在文件中(不提交到源代码存储库)或作为环境变量将具有相同的效果。
如果您的系统因有人可以访问服务器而受到损害,这两种方法都会暴露您的安全密钥。所以,这不会有太大的不同。
现在,我想说使用环境变量是一个更好的策略。虽然与安全无关。但通常依靠未提交的文件来运行项目并不是一个好主意。这是著名的 in my machine it works 问题的原因之一。而且它还使新手很难进行项目的初始设置。
对于这种设置和配置管理,有一个很棒的python库,叫做Python Decouple。值得一试。我在我使用的每个 Django 项目中都使用它。
【讨论】: