在rails应用程序中放置安全密码/密钥的位置?

我有一些Web服务需要传入安全的令牌/密钥/密码。我应该在哪里为rails应用程序定义这些安全值? 我想在版本控制中使用开发键,但不希望生产键在版本控制中。 我该如何设置? 我是铁杆新手。

你正确地看到了问题。

将您的passwordskeys放在从版本控制中排除的某个yml文件中。

然后在生产服务器上,每次部署时创建相同的文件并将应用程序符号链接到它。

编辑。

Capistrano几乎可以满足这些需求:

  • 将您的yml文件放在shared文件夹中

  • 在你的capistrano deploy.rb文件中:

     after 'deploy' do run "ln -s #{shared_path}/database.yml #{release_path}/config/database.yml" end 
  • 使用yml文件: http ://railscasts.com/episodes/85-yaml-configuration-file

apneadiving是对的,符号化文件是个好主意。 另一种方法是将密钥放在shell变量中,只能由运行应用程序的用户访问。 然后,在您的rails应用程序中,您将拥有

 login = ENV['SERVICE_LOGIN'] password = ENV['SERVICE_PASSWORD'] 

从Rails 4.1.0开始,请查看secrets.yml 。