如何将Heroku应用程序保密?

fel*_*lix 23 authentication heroku devise ruby-on-rails-3

有没有办法让我的应用程序完全保密,只让开发人员可以访问?

当随机用户输入URL时,它应该类似于空白页面,但是当开发人员输入URL时,他们应该能够访问该应用程序.

lbz*_*lbz 16

我的廉价解决方案一直在实现一个before_filter,以便在执行每个操作之前请求HTTP身份验证.

此解决方案适用于其他身份验证层 - 设计或其他.

USERS = { "user" => "secret" }

before_filter :authenticate

def authenticate
  authenticate_or_request_with_http_digest("Application") do |name|
    USERS[name]
  end
end
Run Code Online (Sandbox Code Playgroud)

每当其他对等方登陆yourdomain.heroku.com时,系统会要求他们进行HTTP身份验证,稍后进行其他身份验证(如果有).


Bra*_*ker 6

一个非常简单的解决方案是仅添加一个可以存储在用户计算机上的 cookie 中的密钥。这不是一个完美的解决方案,因为有人可以获得密钥,但它为您提供了基本的保护,防止有人无意中访问您的网站。您可以使用http://www.yourdomain.com?access_key=random_string这样的 url ,然后将以下内容添加到您的应用程序控制器。

class ApplicationController < ActionController::Base
  before_filter :check_redirect_key

  def check_redirect_key
    if request[:access_key] != 'random_string' && cookies[:access_key] != 'random_string'
      redirect_to "/404.html" 
    elsif request[:access_key] == 'random_string'
      cookies.permanent[:access_key] = 'random_string'
    end
  end

end
Run Code Online (Sandbox Code Playgroud)

此代码将检查用户计算机上的 url 或 cookie 中的访问密钥,如果任一位置存在访问密钥,则允许他们进入。这样,一旦他们使用密钥访问该网站,他们就可以直接访问该网址。


Jan*_*bel 6

现在,您还可以使用Heroku附加组件,它使您可以指定允许访问应用程序的用户的电子邮件,并使用Persona(aka BrowserID)对用户进行身份验证(不需要特定于站点的密码)。