Подтвердить что ты не робот

Как вы можете блокировать или фильтровать IP-адреса на Heroku?

Есть ли способ реализовать правила фильтрации IP-адресов или IP-доступа так же, как и с nginx/apache для ограничения или блокировки определенных IP-адресов на Heroku?

Примечание. Я знаю, что это можно сделать из моего приложения (Rails 3.2) очень легко, но я не думаю, что это наиболее эффективное использование моих ресурсов на Heroku. Кроме того, решение на стойке было бы лучше, чем реализация фильтрации в Rails.

4b9b3361

Ответ 1

Я добавил 'rack-block' в качестве промежуточного ПО Rack. В config/initializers добавьте новый файл:

YourApp::Application.configure do

  config.middleware.insert_before(Rack::Lock, Rack::Block) do  
    # Add your rules with the rack-block syntax in here
  end

end

Работает как шарм.

Ответ 2

Вы должны проверить rack-attack. Похоже, он делает то же самое, что и стойку, но гораздо чаще используется и часто обновляется. Чтобы заблокировать определенный IP-адрес, вы можете сделать это:

# Block requests from 1.2.3.4
Rack::Attack.blacklist('block 1.2.3.4') do |req|
  # Requests are blocked if the return value is truthy
  '1.2.3.4' == req.ip
end