ヘロクの特定のIPを制限またはブロックするために、nginx/apacheと同じようにIPフィルタリングまたはIPアクセスルールを実装する方法はありますか?ヘロクのIPアドレスをブロックまたはフィルタリングする方法は?
注:これは私のアプリケーション(Rails 3.2)から非常に簡単に行うことができますが、私はこれがHerokuのリソースを最も効率的に使用しているとは思いません。また、Railsベースのソリューションは、Railsでフィルタリングを実装するよりも優れています。
ヘロクの特定のIPを制限またはブロックするために、nginx/apacheと同じようにIPフィルタリングまたはIPアクセスルールを実装する方法はありますか?ヘロクのIPアドレスをブロックまたはフィルタリングする方法は?
注:これは私のアプリケーション(Rails 3.2)から非常に簡単に行うことができますが、私はこれがHerokuのリソースを最も効率的に使用しているとは思いません。また、Railsベースのソリューションは、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
IP範囲をブロックすることはできますか?1.2.3。*? –
@Stefanosあなたが 'Rack :: Attack.blacklist'に渡すブロックが真を返すようにするために必要な値をブロックするにはIoannouを使用します: '(0..255).map {| val | '03.3。 '+ val.to_s} .include?(req.ip) ' – Phil
@Phil私は、人為的な例について賢明ではありますが...;)あなたはおそらく' starts_with? ( '1.2.3') ' - 256文字列の配列を作成し、その中にipが大量でないかもしれないかどうかを確認する計算上ですが、必要でない場合はすべての要求に対して何かしたいことはないかもしれません。 –
ありがとう、これは私が探していたものです。私はちょっと私のグーグルのスキルに関心があります。 –
要求がdynoにヒットする前に、センタリングアドレスをブロックする方法はありますか? –
許可したい1つのIP以外のすべてのIPアドレスをブロックするにはどうしたらいいですか?私にはラックブロックと思われます。私はブロックしたいすべてのIPアドレスをリストアップしなければなりません:( – morgler