【发布时间】:2011-07-25 04:39:49
【问题描述】:
我的 Rails 应用程序中有许多“系统”密码,例如数据库密码和 XML 提要的单独 HTTP 身份验证密码。
我的麻烦是确切地知道如何将这些密码存储在我的目录中,以便它们尽可能安全。您对 Rails 3 有什么特别的建议?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 passwords
我的 Rails 应用程序中有许多“系统”密码,例如数据库密码和 XML 提要的单独 HTTP 身份验证密码。
我的麻烦是确切地知道如何将这些密码存储在我的目录中,以便它们尽可能安全。您对 Rails 3 有什么特别的建议?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 passwords
在数据库中加密?
在环境配置中?
我过去都用过。现实情况是 HTTP 密码更像是一个 API 密钥。服务的提供者有责任保证你不能对访问做任何“邪恶”的事情。一般来说,建议不要将任何你不想公开的东西放在源代码控制中。过去,我不得不在我的应用程序之外部署单独的密钥文件。如果您正在做真正安全的事情(例如信用卡),那么您可以这样做。只需在有权访问密钥文件的服务器上创建一个用户。然后,您实际上是在使用对 Unix 机器的访问作为您的安全模型,而不是您的密钥文件的密码。
【讨论】:
只需确保将您的配置文件存储在配置文件夹中(或至少在公共文件夹之外;)。除此之外,您应该确保从外部访问您的 rails-app-user-account (强制 ssh-pubkey 身份验证)。
另一个安全漏洞是签入的配置文件带有合理的密码信息(例如数据库访问)。我总是将 config/database.yml 添加到 .gitignore 并签入默认的 config/database.sample.yml 作为其他开发人员的模板。 “真实”的 config/database.yml 是使用特定于环境的配置值手动创建和配置的。
【讨论】: