刚刚有一个关于http_basic_authenticate_with的新手问题。如果我在控制器中放置一些简单的东西,
http_basic_authenticate_with :name => "user", :password => "secret"
如何确保密码安全。我只是希望能够将应用程序置于生产/发布中,并以安全的方式保护整个应用程序密码。
感谢您的任何建议。
答案 0 :(得分:3)
我可以建议在环境中输入密码。 例如,您可以执行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']
答案 1 :(得分:0)
虽然选择了正确的答案;我想添加其他选项。
场景:假设您正在创建博客并希望进行简单的身份验证。在post_controller.rb
中,您需要添加以下内容:
http_basic_authenticate_with name: ENV["BLOG_USERNAME"],password: ENV["BLOG_PASSWORD"],except: [:show]
为了“安全地”与这些变量进行通信,请选择一个选项:
选项1
在application.yml
文件夹中创建config
文件;您将在何处添加配置(用户名和密码),例如:
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 使用Figaro gem
Gemfile
添加gem "figaro"
中,运行bundle install
并运行figaro install
。config/application.yml
文件并将其添加到您的.gitignore
。