Ruby on rails Rack::攻击不会阻止列出ip地址

Ruby on rails Rack::攻击不会阻止列出ip地址,ruby-on-rails,ruby-on-rails-5.2,rackattack,Ruby On Rails,Ruby On Rails 5.2,Rackattack,我已经安装并配置了Rack::Attack,但被列入黑名单的ip地址仍然不断攻击我的站点 在config/application.rb中: require_relative 'boot' require 'rails/all' # Require the gems listed in Gemfile, including any gems # you've limited to :test, :development, or :production. Bundler.require(*Rai

我已经安装并配置了Rack::Attack,但被列入黑名单的ip地址仍然不断攻击我的站点

在config/application.rb中:

require_relative 'boot'

require 'rails/all'

# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)

module MyApp
  class Application < Rails::Application
    # Initialize configuration defaults for originally generated Rails version.
    config.load_defaults 5.1
    config.middleware.use Rack::Attack


    ActionController::Base.config.relative_url_root = ''
  end
end
在安装配置后,相同的ip_地址仍在我的站点上。我很兴奋,因为我的流量是平时的5倍,结果发现这些垃圾桶在大干一场

检查您的安全列表,查看是否有要阻止的IP地址的范围或占位符。如果一个IP地址被安全列表覆盖,即使它在阻止列表中也不会被阻止。顺便说一下,您的代码可以通过IP范围简化一点。此外,不需要IPAddr.newreq.ip.to_i,只需使用req.ip即可

RANGE = IPAddr.new '54.36.0.0/14'
puts RANGE.to_range                  # 54.36.0.0..54.39.255.255
puts RANGE.include? '54.36.0.0'      # true
puts RANGE.include? '54.39.255.255'  # true

我想你重启了你的服务器。它们是否仍在访问您的应用程序层或Web服务器?因为它们需要击中您的机架堆栈才能被机架攻击捕获,但不应击中您的应用程序层。为什么要将初始值设定项代码放入rack::attack类命名空间中?我觉得这是不对的。
RANGE = IPAddr.new '54.36.0.0/14'
puts RANGE.to_range                  # 54.36.0.0..54.39.255.255
puts RANGE.include? '54.36.0.0'      # true
puts RANGE.include? '54.39.255.255'  # true