我有一个客户担心有人可能会发现我们的开发服务器的IP并尝试在发布之前窃取新功能。 (因为我们有外部链接和嵌入,所以可以在测试时跟踪)。我一直在寻找一种只在开发模式下密码保护服务器的方法(我不想在每次部署之前更改代码)。我正在考虑通过以下控制器进行超级基本身份验证:
if RAILS_ENV == "development"
collect = require_password #some action or method or something here... Figure it out later...
if collect != "foobar"
redirect_to "http://www.google.com"
end
end
我觉得这样做是一种奇怪的愚蠢方式,但是,它并不像我们需要史诗般的安全性,只是为了让那些可能在开发模式中偶然发现网站的人感到沮丧。
答案 0 :(得分:1)
在您的控制器中添加以下行
USER_NAME, PASSWORD = "user", "password"
before_filter :authenticate_testing
before_filter的代码如下所示
def authenticate_testing
if Rails.env.development?
authenticate_or_request_with_http_basic do |user_name, password|
user_name == USER_NAME && password == PASSWORD
end
end
end