我正在尝试找出保护我的暂存环境的最佳方法是什么。目前我在同一台服务器上运行登台和生产。
我能想到的两个选择是:
使用 Rails 摘要身份验证
我可以把这样的东西放在 application_controller.rb 中
# Password protection for staging environment
if RAILS_ENV == 'staging'
before_filter :authenticate_for_staging
end
def authenticate_for_staging
success = authenticate_or_request_with_http_digest("Staging") do |username|
if username == "staging"
"staging_password"
end
end
unless success
request_http_digest_authentication("Admin", "Authentication failed")
end
end
这是从瑞安·戴格尔的博客。我正在最新的 Rails 2.3 上运行,所以我应该不会遇到安全问题。
使用 Web 服务器身份验证
我还可以使用 .htaccess 或 apache 权限来实现此目的,但是它使我的服务器配置稍微复杂一些(我使用的是 Chef,并且需要不同的 apache 配置来进行暂存/生产)。
现在我已经实施并运行了第一个,您发现它有什么问题吗?我错过了一些明显的事情吗?提前致谢!
碰撞这个是为了帮助其他人,就像我自己一样,当我在选择一个类似但更干净的解决方案之前读到这篇文章时。
# config/environments/staging.rb
MyApp::Application.configure do
config.middleware.insert_after(::Rack::Lock, "::Rack::Auth::Basic", "Staging") do |u, p|
[u, p] == ['username', 'password']
end
#... other config
end
我写了一篇短文博客文章关于它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)