Herokuで特定のIPを制限またはブロックするためにnginx/apacheを使用する場合と同じように、IPフィルタリングまたはIPアクセスルールを実装する方法はありますか?
注:これはアプリケーション(Rails 3.2)内から非常に簡単に実行できることは知っていますが、これがHerokuのリソースの最も効率的な使用法ではないと思います。また、Railsでフィルタリングを実装するよりも、Rackベースのソリューションの方が優れています。
Herokuで特定のIPを制限またはブロックするためにnginx/apacheを使用する場合と同じように、IPフィルタリングまたはIPアクセスルールを実装する方法はありますか?
注:これはアプリケーション(Rails 3.2)内から非常に簡単に実行できることは知っていますが、これがHerokuのリソースの最も効率的な使用法ではないと思います。また、Railsでフィルタリングを実装するよりも、Rackベースのソリューションの方が優れています。
ラックアタックをチェックする必要があります。ラックブロックと同じように見えますが、はるかに広く使用され、頻繁に更新されます。特定の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
Rackミドルウェアとして「rack-block」を追加しました。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
チャームのように機能します。