У меня проблема с тем, что мне кажется, что я не могу получить доступ к заголовку Cloudflare, который передает IP-адрес клиента при прокси-запросах.
Заголовок должен быть HTTP_CF_CONNECTING_IP
в соответствии с документами Cloudflare, а мой сайт размещен на Heroku.
У меня есть следующие настройки Rack Attack, но даже когда живое в производстве HTTP_CF_CONNECTING_IP
нет регистрация на всех.
class Rack::Attack
Rack::Attack.cache.store = ActiveSupport::Cache::MemoryStore.new
class Request < ::Rack::Request
def remote_ip
@remote_ip ||= (env['HTTP_CF_CONNECTING_IP'] || env['action_dispatch.remote_ip'] || ip).to_s
end
end
track('Log all requests') do |req|
puts req.ip # returns an IP
puts req.env['action_dispatch.remote_ip'] # returns the same IP as req.ip
puts req.env['HTTP_CF_CONNECTING_IP'] # doesn't show anything
req.remote_ip
end
end
Я пользуюсь бесплатной версией Cloudflare, и мне было интересно, имеет ли это какое-то значение, но в данный момент невозможно использовать Rack Attack, поскольку я, кажется, просто блокирую всех.
Любая помощь приветствуется.