我试图找出如何更好地保护我的暂存环境。当前,我在同一台服务器上运行暂存和生产环境。
我能想到的两个选择是:
使用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
这段内容摘自Ryan Daigle的博客。我正在最新版本的Rails 2.3上运行,所以应该不会受到他们在这方面遇到的安全问题的影响。
使用Web服务器认证
我也可以使用.htaccess或apache权限来实现此目的,但这会使我的服务器配置略微复杂一些(我正在使用Chef,并且需要针对Staging/Production使用不同的apache配置)。
目前,我已经实现并正常运行了第一个方法,你看有什么问题吗?我是否漏掉了一些明显的东西?提前感谢!