将我的开发和测试"secrets"包含在版本控制中是犹太洁食吗?


Rails 4.1.0引入了一个新的secrets.yml文件。这就是我现在所做的:通常对于生产环境,我使用环境变量并将它们注入到文件中,如下所示:
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的方法,有充分的记录。。。

最新更新