IP-адрес Cloudflare и Rack Attack Rails - PullRequest
0 голосов
/ 06 апреля 2020

У меня проблема с тем, что мне кажется, что я не могу получить доступ к заголовку 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, поскольку я, кажется, просто блокирую всех.

Любая помощь приветствуется.

...