机架::攻击不是将 IP 地址列入阻止列表



我已经安装并配置了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

和在initializers/rack_attack.rb 中

class Rack::Attack
Rack::Attack.blocklist_ip("46.229.168.154")
Rack::Attack.blocklist_ip("23.101.169.3")
RANGE = (IPAddr.new('54.36.0.0').to_i..IPAddr.new('54.38.255.255').to_i)
Rack::Attack.blocklist('block_local_network')  do|req|
RANGE.include?(IPAddr.new(req.ip).to_i)
end

end

在安装配置之后,相同的ip_address仍然出现在我的网站上。我很兴奋,因为我的流量是平时的5倍,却发现这些垃圾邮件机器人玩得很开心。

检查安全列表,查看是否有要阻止的IP地址的范围或占位符。如果一个IP地址被安全列表覆盖,即使它在阻止列表中,也不会被阻止。顺便说一下,您的代码可以通过IP范围进行一点简化。此外,IPAddr.new(req.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

最新更新