【问题标题】:Heroku powered private restricted betaHeroku 驱动的私人受限测试版
【发布时间】:2010-06-11 12:40:25
【问题描述】:

我想在 Heroku 上以受限的私有 Beta 版运行应用。

我们会定期更换应用,尚未进行安全审核。

为了阻止任何人利用这些东西,我们想锁定整个网站,所以你需要密码才能访问任何东西。

与使用 .htaccess 和 .htpasswd 文件在 Apache 服务器上锁定整个站点非常相似。

对于 Heroku 托管的应用程序,是否有一种简单的一次性方法可以做到这一点?

【问题讨论】:

标签: ruby-on-rails security heroku


【解决方案1】:

只需在 ApplicationController 的 before_filter 中使用 authenticate_or_request_with_http_basic

有关说明,请参阅此 Railscasts 集:http://railscasts.com/episodes/82-http-basic-authentication

【讨论】:

  • 试过了,但不能很好地配合设计。似乎生成了一个无限重定向循环
  • 啊!只需在过滤方法的末尾添加warden.custom_failure! if performed?(如gist.github.com/dc7906d07174c8514551
  • 我已经用warden.custom_failure! if performed? 尝试过这种方法,它可以工作,但它会导致另一个问题。当您尝试以用户身份(使用设计)登录时,它会显示“用户名和密码错误”,可能是因为它正在尝试使用我用于 HTTP 基本身份验证的 u/p。有什么想法吗?
【解决方案2】:

.htaccess.htpasswd 基本上告诉 Apache 使用基本身份验证系统对用户进行身份验证。您可以对纯机架层执行相同操作。

http://rack.rubyforge.org/doc/Rack/Auth/Basic.html

因为您使用的是 Heroku,所以我假设您正在部署与 Rack 兼容的应用程序(Rack、Rails 或 Sinatra 应用程序)。

【讨论】:

    【解决方案3】:

    在这样的机架底座上:)

    http://www.sinatrarb.com/faq.html#auth

      use Rack::Auth::Basic, "Restricted Area" do |username, password|
        [username, password] == ['admin', 'admin']
      end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      • 2017-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多