是否可以在config / database.yml文件中存储生产环境的DB密码

时间:2014-09-25 12:05:45

标签: ruby-on-rails ruby ruby-on-rails-4

可以在“config / database.yml”文件中存储生产环境的DB密码吗?或者有没有更正确的方法(可能是环境变量)?

提前致谢。

1 个答案:

答案 0 :(得分:3)

这不是个好主意!一个主要原因是config/database.yml文件可能会包含在某种源控件中,就像git存储库一样。即使回购目前是私人的,你也无法确定它将来会被公开,然后你就会遇到问题!

此外,如果有人获得了对您的应用程序文件的读取权限,或者仅获得了应用程序源代码的副本,那么他们现在拥有您的数据库密码。

一个典型的解决方案是设置一个像你建议的环境变量,然后在.yml文件中读取它:

password: <%= ENV['DATABASE_PASSWORD'] %>

如果你使用像Heroku这样的PaaS,这是做事的标准方法。但即使this isn't a perfect solution,也要仔细评估您的选择。