【问题标题】:Rails http_basic_authenticate_withRails http_basic_authenticate_with
【发布时间】:2013-11-17 06:21:10
【问题描述】:

刚刚有一个关于 http_basic_authenticate_with 的新手问题。如果我在控制器中放置一些简单的东西,

http_basic_authenticate_with :name => "user", :password => "secret"

如何确保密码安全。我只是希望能够将应用程序投入生产/发布它,并以安全的方式保护整个应用程序密码。

感谢您的任何建议。

【问题讨论】:

    标签: ruby-on-rails authentication passwords


    【解决方案1】:

    我可以建议在环境中输入密码。 例如你可以做http://www.cyberciti.biz/faq/set-environment-variable-linux/ 导出 APP_USER='secret_user' export APP_PASSWORD='secret_password'

    # then in controller
    http_basic_authenticate_with :name => ENV['secret_user'], :password => ENV['secret_password']
    

    【讨论】:

      【解决方案2】:

      虽然选择了正确的答案;我喜欢添加其他选项。

      场景:假设您正在创建博客并希望进行简单的身份验证。在您的 post_controller.rb 中,您将添加以下内容:

      http_basic_authenticate_with name: ENV["BLOG_USERNAME"],password: ENV["BLOG_PASSWORD"],except: [:show]
      

      为了“安全”地与这些变量通信,请选择一个选项:

      1. 选项 1

        • config文件夹中创建application.yml文件;您将在其中添加配置(用户名和密码),例如:

          BLOG_USERNAME: "admin"
          BLOG_PASSWORD: "12345"
          
        • 现在,由于 application.yml 包含敏感信息,我们希望 Git 忽略该文件。因此将以下内容添加到.gitignore 文件中:/config/application.yml

        • 现在我们需要通过在application.rb 文件中添加以下行来加载这些变量:

          ENV.update YAML.load(File.read(File.expand_path('../application.yml', __FILE__)))
          
      2. 选项2使用Figaro gem

        • 在您的Gemfile 中添加gem "figaro",运行bundle install 并运行figaro install
          Figaro 将创建config/application.yml 文件并将其添加到您的.gitignore
        • 现在将您自己的配置添加到此文件中,类似于上面的第 1 步,同样按照第 3 步操作,您就完成了!
          更多详情请查看Figaro's documentation

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-07
        • 2018-09-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多