2017-02-13 10 views
-1

Cookieオブジェクトを使用してすべてのユーザーhttpセッションを追跡するメカニズムを設定したいと考えています。したがって、私は、次のような(ログインプロセスが成功したら)私はレスポンスボディでクライアントに、その後通信するクッキーにユーザーIDを格納します。Cookieに基づいて対応するHttpSessionを取得する方法

Cookie loginCookie = new Cookie("userId", userId); 
httpServletResponse.addCookie(loginCookie); 

私が得た3つの質問を持ってください。

1)Cookieに基づいて特定のユーザーのhttpセッションを取得するにはどうすればよいですか?この目的のためにuserIdの代わりにJSESSIONIDを保存しますか?

2)ユーザーのクッキーを暗号化しても、クライアントとサーバー間の通信を盗み出した攻撃者によって、クッキーが侵害されることはありません。したがって、攻撃者は、ユーザーがサーバーを要求するたびに同じCookieが通信されているため、Cookieを再利用してサーバーを実際のユーザーとして要求することができます。私は本当にクッキーの暗号化が助けになるか分かりません。送信者を認証するためにデジタル署名アルゴリズムも使用しますか?

答えて

0
  1. セッションIDをクッキーに、ユーザーIDをサーバー側セッションに保存する必要があります。

  2. httpsを使用している場合は、Cookieの再利用が問題になることはありません。これにより、eavsdroppingのリスクが軽減されます。 httpsを使用していない場合は、暗号化の方法はあなたを助けません。

+0

最初の点については、セッションIDとユーザーIDの間にどのようにリンクを張らなければなりませんか?私が言ったような私の目標は、特定のユーザーに対応するセッションを取得することです。 –

+0

セッションIDは、Cookieを持っているため、特定のブラウザの特定のユーザーに属していることがわかります。セッション状態のユーザーIDを確認することで、どのユーザーかを確認できます。 –

関連する問題