Django 将密钥放在环境变量中是否比将其放在未跟踪的设置文件中更好?

Django 将密钥放在环境变量中是否比将其放在未跟踪的设置文件中更好?,django,django-settings,secret-key,dev-to-production,Django,Django Settings,Secret Key,Dev To Production,在将项目的settings.py文件分为基本文件、开发文件和生产文件的场景中,VCS中只跟踪基本文件。如果密钥在生产设置文件中硬编码,是否有问题。或者将其放在环境变量中是更好的选择?若然,原因为何 从系统中提取它是否比在文件中以纯文本形式写入更安全?我认为这两种方法的安全性是相同的。写在文件中(未提交到源代码存储库)或作为环境变量将具有相同的效果 如果您的系统受到威胁,有人访问了服务器,这两种方法都会暴露您的安全密钥。所以,这没什么区别 现在,我想说使用环境变量是一个更好的策略。但与安全无关。但

在将项目的settings.py文件分为基本文件、开发文件和生产文件的场景中,VCS中只跟踪基本文件。如果密钥在生产设置文件中硬编码,是否有问题。或者将其放在环境变量中是更好的选择?若然,原因为何


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

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

如果您的系统受到威胁,有人访问了服务器,这两种方法都会暴露您的安全密钥。所以,这没什么区别

现在,我想说使用环境变量是一个更好的策略。但与安全无关。但通常依靠未提交的文件来运行项目不是一个好主意。这是我的机器出现问题的原因之一。这也使得新来者难以进行项目的初始设置


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

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

如果您的系统受到威胁,有人访问了服务器,这两种方法都会暴露您的安全密钥。所以,这没什么区别

现在,我想说使用环境变量是一个更好的策略。但与安全无关。但通常依靠未提交的文件来运行项目不是一个好主意。这是我的机器出现问题的原因之一。这也使得新来者难以进行项目的初始设置


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

我同意依靠未提交的文件来运行项目不是一个好主意,这就是为什么我制作了自述文件,它应该指导我正确定义所有缺少的设置变量。但是Python解耦似乎是个好主意,我可能会切换到它而不是拆分设置文件。谢谢!:-)+1为自述文件。另外,关于设置的补充:可以有多个设置文件(dev、prod、ci、tests等),只要它们都提交给repo。您可以结合使用多个设置+环境变量(用于密码、密钥等)。当然,如果您可以使用单个设置模块维护您的项目,这将是最好的方案。python解耦在这种情况下有很大帮助。我总是尝试使用1设置保留我的项目,但有时您必须拆分itI我同意依靠未提交的文件来运行项目不是一个好主意,这就是为什么我创建了自述文件,它应该指导我正确定义所有缺少的设置变量。但是Python解耦似乎是个好主意,我可能会切换到它而不是拆分设置文件。谢谢!:-)+1为自述文件。另外,关于设置的补充:可以有多个设置文件(dev、prod、ci、tests等),只要它们都提交给repo。您可以结合使用多个设置+环境变量(用于密码、密钥等)。当然,如果您可以使用单个设置模块维护您的项目,这将是最好的方案。python解耦在这种情况下有很大帮助。我总是尝试使用1设置保留我的项目,但有时您必须拆分它