我的Rails应用程序中有许多“系统”密码,例如数据库密码和XML Feed的单独HTTP身份验证密码。
我的麻烦在于确切知道如何将这些密码存储在我的目录中,以便它们尽可能安全。您对Rails 3的具体建议是什么?
答案 0 :(得分:5)
在数据库中加密?
环境配置中的?
我过去曾用过这两种方法。实际情况是HTTP密码更像是API密钥。服务提供商有责任让您无法通过访问做任何“邪恶”的事情。一般来说,建议不要将任何东西放在源代码管理中,你不想公开。在过去,我必须在我的应用程序之外部署单独的密钥文件。如果你正在做一些非常安全的东西(信用卡),那么你就可以做到。只需在服务器上创建一个可以访问密钥文件的用户。然后,您实际上使用Unix框作为安全模型,而不是密钥文件的密码。
答案 1 :(得分:2)
只需确保将配置文件存储在config-folder中(或至少在公共文件夹之外;)。除此之外,您应该保护从外部访问rails-app-user-account(强制ssh-pubkey身份验证)。
另一个安全漏洞是签入的配置文件,其中包含合理的密码信息(例如数据库访问)。我总是将config / database.yml添加到.gitignore并签入默认的config / database.sample.yml作为其他开发人员的模板。使用特定于环境的配置值手动创建和配置“真实”config / database.yml。