【发布时间】:2018-12-04 05:36:58
【问题描述】:
我已经安装并配置了 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_addresses 仍在访问我的站点。我很兴奋,因为我的流量比平时增加了 5 倍,结果却发现这些垃圾邮件机器人过得很好。
【问题讨论】:
-
我假设您重新启动了服务器。他们是否仍在访问您的应用程序层或您的网络服务器?因为它们需要命中你的机架堆栈才能被机架攻击捕获,但不应该命中你的应用层。
-
为什么要将初始化代码放入
Rack::Attack类命名空间?这对我来说似乎是错误的。
标签: ruby-on-rails ruby-on-rails-5.2 rackattack