2010-12-14 10 views
0

私はたくさんの検索をしましたが、Grizzlyを使用することは、私がこれらの攻撃に対して保護されていることを意味するのか、それとももっと努力すべきなのかをまだ理解していません。Grizzly ProjectはバッファオーバーフローやDoS攻撃を処理しますか?

現在、私は私のプログラムで行う唯一のことは、私は(@Pathによる注釈付き - 私はジャージーを使用しています)私のリソースクラスを展開することで、次のコードにより、グリズリーに:で

final Map<String, String> initParams = new HashMap<String, String>(); 
initParams.put("com.sun.jersey.config.property.packages","MyServer.resources"); 
SelectorThread threadSelector; 
try{ 
    threadSelector = GrizzlyWebContainerFactory.create(
uri, initParams); 
    System.out.println("Press enter to stop server..."); 
    System.in.read(); 
    threadSelector.stopEndpoint(); 
}catch(...){...} 

JAXBビーンズのリストにアクセスすることができます。JAXBビーンズのリストには、サイズを指定していません(大規模なリクエストを避けるためにこの時点でサイズをチェックできるかどうかはわかりませんが、 )、攻撃者が連続して大量のリクエストを送信する可能性があります(私の通常のリクエストサイズは6豆未満でなければなりません!)、サービス拒否につながります。セキュリティリスクを覚え始め、それを処理し始めました。私の最初の試みです!

リクエストハンドラメソッドの本体のサイズを確認します。リクエストの処理は、リクエストがサーバによって完全に受信された後です。それは十分か?

Grizzlyのドキュメントではバッファ管理に問題があると言われていますが、バッファオーバーフローとサービス拒否が混在している可能性がありますが、設定する必要はないのですか?

編集:私は、私はまだ特にグリズリーやジャージーについて、いくつかのヒントを探しています、私の質問の一部に良い答えを受けたが、している

エントリーの単一ポイントが存在するかどうかをここでIすべての着信要求をチェックできますか?

ありがとうございます!

答えて

2

Javaを使用している場合、ネイティブコードライブラリを使用してネットから取得したものを処理しない限り、古典的なバッファオーバーラン攻撃からかなり免れます。

一方、サービス拒否攻撃から自分自身を保護するには、システム全体のアプローチが必要です。 「システム全体の」アプローチにより、

EDIT

、私はあなたのネットワークの帯域幅、インフラおよびバックエンドサーバーだけでなく、自分のWebサーバへの影響を考慮したものを意味します。たとえば、ネットワーク帯域幅またはDNSに向けられた攻撃は、Webサーバーの実装方法に関係なく、大気から離れてしまいます。もう一方の端で、誰かがあなたのWebアプリケーションの側面をターゲットにすることができます。例えば特定のクエリが非常に高価であるという知識、またはリソースが漏れて最終的にアプリケーションがクラッシュするという知識。

(私はこれの専門家ではないよ。私はちょうどあなたが本当にDDoS攻撃防御を気にしている場合だけで、あなたのWebサーバのプラットフォームを見ると...十分ではないことを指摘しようとしている。)

+0

感謝例を挙げて、システム全体のアプローチについて少し具体的にすることはできますか?私はプログラミングとセキュリティにおいてこの名前で具体的なアプローチを見つけられなかったので、一般的な表現でなければなりません。申し訳ありませんが、私はこの分野ではよく知られていません。 – samaneh

+0

ええ、同じ理由から、私は、各リクエストがレスポンスメソッドによって直接処理される一方で、高価なクエリ(期限内に着信要求の数を制御するなど)のようなものの誤用を制御する方法を探しています私はこれらの要求が最初に受信された場所を見ておらず、それらの応答方法に向けられています。 – samaneh

関連する問題