我在Rails,django(和一点点php)上开发了一些应用程序,在其中一些应用程序中我开始做的一件事是将数据库和其他密码作为环境变量而不是纯文本存储在某些配置文件中(或在settings.py中(对于Django应用)。
在与我的一位合作者讨论此问题时,他建议这是一种不良做法-也许这并不像最初看起来那样安全。
所以,我想知道-这是安全的做法吗?将密码以纯文本格式存储在这些文件中是否更安全(当然,请确保不要将这些文件保留在公共存储库中或其他内容中)?
从理论上讲,我倾向于以以下方式(按照强度递增的顺序)考虑安全级别:
如前所述,一旦系统受到威胁,这两种方法都不会提供任何额外的“安全性”层。我认为支持环境变量的最重要原因之一是版本控制:我已经看到太多的数据库配置等被意外地存储在像GIT这样的版本控制系统中,其他所有开发人员都可以看到(而且!!)我也是 …)。
如果不将密码存储在文件中,则无法将其存储在版本控制系统中。