production:
secret_key_base: ENV['SECRETS_KEY_BASE']
(我使用Heroku,所以我使用环境变量进行配置,而不是secrets.yml,因为你不能只将任意文件上传到Heroku服务器。)
然而,对于开发和测试环境,我发现自己在说,随便;我只是把"秘密"包括在回购中。我想,当我只是在做当地开发时,这些价值观是否被暴露出来并不重要。
我还在这里放了OAuth密钥/机密之类的东西。例如,在Google中,我从开发人员控制台向两个客户端注册了一个应用程序,一个用于生产(URL设置为我的实际域),另一个用于dev/test(localhost:3000或其他)。同样,我倾向于将客户端机密包含在开发的repo中,但将其放在环境变量中,并为生产注入。
这是明智的做法吗?这样暴露开发/测试证书是否存在我没有想到的风险?
如果你必须问。。。
当一个单一的、常见的、重要的密码被泄露时,就会发生安全漏洞,使攻击者能够进入秘密的宝库。
对待你的秘密文件就像对待database.yml
一样-这是一种让你的数据库密码(if any;)
远离git的方法,有充分的记录。。。