Rails 4.1.0引入了一个新的secrets.yml文件。这就是我现在正在做的事情:通常对于生产环境,我使用环境变量并将它们注入文件中,如下所示:
production:
secret_key_base: ENV['SECRETS_KEY_BASE']
(我使用Heroku,所以我使用环境变量进行配置而不是使用secrets.yml,因为你不能只是将任意文件上传到Heroku服务器。)
但是对于开发和测试环境,我发现自己说,无论;我只是在回购中加入了“秘密”。我认为,当我正在进行本地开发时,这些值是否暴露并不重要。
我还在这里放置OAuth密钥/秘密等内容。例如,对于Google,我使用developer console的两个客户端注册一个应用程序,一个用于生产(URL设置为我的实际域),另一个用于dev / test(使用localhost:3000或其他)。而且,我倾向于将客户端秘密包含在dev的repo中,但是将其放在环境变量中并将其注入生产。
这是一种理智的方法吗?是否存在我没有考虑过暴露这样的开发/测试凭证的风险?
答案 0 :(得分:0)
如果你不得不问......
当一个共同的,重要的密码被泄密时,安全漏洞就会发生,让攻击者可以获得秘密宝藏。
按照每个人对待database.yml
的方式处理您的秘密文件 - 这是一种将数据库密码(if any;)
从git中保留的方法......