Как вы можете блокировать или фильтровать IP-адреса на Heroku?
есть ли способ реализовать IP-фильтрацию или правила доступа IP, как я бы с nginx/apache, чтобы ограничить или заблокировать определенные IP-адреса на Heroku?
Примечание: Я знаю, что это можно сделать из моего приложения (Rails 3.2) очень легко, но я не думаю, что это наиболее эффективное использование моих ресурсов на Heroku. Кроме того, решение на основе стойки было бы лучше, чем реализация фильтрации в Rails.
2 ответов
добавил '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
работает как шарм.
вы должны проверить rack-attack
. Похоже, что он делает то же самое, что и rack-block, Но гораздо более широко используется и часто обновляется. Чтобы заблокировать определенный 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