在版本控制中包含我的开发和测试“秘密”是否犹豫不决?

时间:2014-01-15 21:04:50

标签: ruby-on-rails security heroku ruby-on-rails-4 credentials

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中,但是将其放在环境变量中并将其注入生产。

这是一种理智的方法吗?是否存在我没​​有考虑过暴露这样的开发/测试凭证的风险?

1 个答案:

答案 0 :(得分:0)

如果你不得不问......

当一个共同的,重要的密码被泄密时,安全漏洞就会发生,让攻击者可以获得秘密宝藏。

按照每个人对待database.yml的方式处理您的秘密文件 - 这是一种将数据库密码(if any;)从git中保留的方法......