【问题标题】:where to put secure passwords/keys in a rails app?在哪里将安全密码/密钥放在 Rails 应用程序中?
【发布时间】:2011-06-05 19:24:00
【问题描述】:

我有一些 Web 服务需要传入安全令牌/密钥/密码。我应该在哪里定义这些安全值以供我的 rails 应用查看?我想要版本控制中的开发密钥,但不想要版本控制中的生产密钥。我应该如何设置?我是 Rails 新手。

【问题讨论】:

    标签: ruby-on-rails security


    【解决方案1】:

    你正确地看到了这个问题。

    将您的passwordskeys 放入一些排除在版本控制之外的 yml 文件中。

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

    编辑。

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

    【讨论】:

    • 谢谢。那么,我会在 Capistrano 脚本中自动执行此过程吗?就像我说的,我是新人。我应该在哪里创建 yml 文件,我应该在哪里加载/读取它?
    【解决方案2】:

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

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

    【讨论】:

    • 我认为这种方法更适用于 Heroku,或者至少更容易......谢谢。
    • +1。此外,请查看以下内容,了解基于每个项目管理这些内容的好方法:github.com/bkeepers/dotenv
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2016-01-21
      • 2013-06-02
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-10
      • 1970-01-01
      相关资源
      最近更新 更多