Herokuで特定のIPを制限またはブロックするためにnginx/Apacheで行うのと同じように、IPフィルタリングまたはIPアクセスルールを実装する方法はありますか?
注:これはアプリケーション(Rails 3.2)内から非常に簡単に実行できることはわかっていますが、これがHerokuのリソースの最も効率的な使用法ではないと思います。また、Railsでフィルタリングを実装するよりも、ラックベースのソリューションの方が適しています。
ラックミドルウェアとして '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
チャームのように機能します。
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