3

JBOSS 5 で Java と Wicket を使用しています。JSESSIONID Cookie 値を変更して、別のクライアントで使用される同じセッションを取得する必要があります (他のクライアントの JSESSIONID を設定します)。キーボードを持たない他のクライアントを認証するために必要です)。最善の方法は何ですか?

4

2 に答える 2

3

私はお勧めしませんが)本当にハックしたい場合は、次の方法で行うことができます。JSESSIONID

  • サーブレットフィルタを作成する
  • そのフィルターで、HttpServletRequest(このクラスの新しいインスタンスをに渡す必要があります)のラッパーを記述します(これをchain.doFilter()呼び出しましょうRequestWrapper
  • RequestWrapperオーバーライドでは、getSession(boolean)メソッド

getSession(booelan)実装では、次のことを行う必要があります

  • キーボード以外のユーザーと「共有」するセッションを特定(および記憶)します(これが最初に来る必要があります)
  • 「変更」を行う場合の状況を特定します(何らかのチェックを行って、キーボード以外のユーザーを特定する場合)
  • '変更'する必要がある場合は、記憶されているセッションをgetSession()

重要な瞬間は次のとおりです。キーボード以外のユーザーをどのように識別しますか?あなたがそれを安全に行うことができない場合(あなたが提供した現在の情報から私はそれを見ることができません)、それはセキュリティホールです。

于 2013-01-29T10:32:19.123 に答える
1

アプリケーションにある種の自動ログイン機能を実装することをお勧めします。これには多くの可能性があります (クライアント証明書、または他の AA プロバイダーとのシングル サインオン、さらにはドメイン Cookie)。

別のアプリケーションでログインしようとしている場合、オプションはHTTP 基本認証、クライアント証明書、または単にユーザー名/パスワードをログイン ページに投稿することです (ただし、これは最も安全ではありません)。

それが最も安全な解決策であるため、私はClient Certificateを好みます。

于 2013-01-28T13:14:26.367 に答える