【问题标题】:Blocked host: localhost ruby on rails 6.0.0被阻止的主机:rails 6.0.0 上的 localhost ruby
【发布时间】:2020-02-15 18:50:24
【问题描述】:

我正在开发我的第一个 rails 6 应用程序,但是当我尝试在我的 nginx 服务器后面的开发环境中提供它时,我发现了这条消息

我尝试在config/environments/development.rbconfig/application.rb 中添加错误中提到的配置,但没有成功。

我正在使用 rails 6.0.0、ruby 2.6.5、nginx 1.10.3

如果我去http://localhost:3000(直接puma URL)它工作正常。但我想知道为什么会出现这个错误。

【问题讨论】:

    标签: ruby-on-rails ruby nginx ruby-on-rails-6


    【解决方案1】:

    这是Rails side 上的一个问题。

    升级到6.0.4.46.1.4.4,就像您可以在他们的blog post 中阅读一样。

    【讨论】:

      【解决方案2】:

      添加主机授权是因为DNS rebinding attacks 这里有更多详细信息,还可以链接到更详细的说明。

      介绍 ActionDispatch::HostAuthorization 主机授权是一个 通过显式防御DNS rebinding attacks 的新中间件 允许可以向主机发送请求。有关更多信息 攻击本身可在此 Medium 帖子和 Daniel Miessler’s DNS Rebinding attack explained 中找到。默认情况下,它设置为所有 Rails 6 应用程序并允许开发以下主机 IPAddr.new(“0.0.0.0/0”), IPAddr.new(“::/0”), “localhost”] 支持 RegExp、Proc、IPAddr 和 String 的数组或 配置。这意味着在 Rails 6 中,我们需要 在环境配置文件中明确设置我们的域。 更多信息可在 HostAuthoration 代码和 HostAuthorization 测试。

      【讨论】:

      • app 文件夹内没有 config 文件夹,但我明白你想说什么,我已经编辑了我的问题,因为我已经尝试将它添加到 config/environments/development.rb
      • 你检查这个解释了吗? fngtps.com/2019/rails6-blocked-host
      • 是的,我读到了,但它说 localhost 默认启用,所以我认为某处存在错误,但是,我知道什么?我也不想禁用主机检查,我只想知道发生了什么谢谢
      • 这里还有一个问题:github.com/thoughtbot/suspenders/issues/975 以及 rails config.hosts 实现:github.com/rails/rails/blob/… 所以你可以多检查一下,也许你能找到一些逻辑。
      猜你喜欢
      • 2022-01-18
      • 1970-01-01
      • 2011-09-10
      • 1970-01-01
      • 2016-06-02
      • 2017-02-09
      • 1970-01-01
      • 1970-01-01
      • 2015-02-21
      相关资源
      最近更新 更多