Cookieオブジェクトを使用してすべてのユーザーhttpセッションを追跡するメカニズムを設定したいと考えています。したがって、私は、次のような(ログインプロセスが成功したら)私はレスポンスボディでクライアントに、その後通信するクッキーにユーザーIDを格納します。Cookieに基づいて対応するHttpSessionを取得する方法
Cookie loginCookie = new Cookie("userId", userId);
httpServletResponse.addCookie(loginCookie);
私が得た3つの質問を持ってください。
1)Cookieに基づいて特定のユーザーのhttpセッションを取得するにはどうすればよいですか?この目的のためにuserIdの代わりにJSESSIONID
を保存しますか?
2)ユーザーのクッキーを暗号化しても、クライアントとサーバー間の通信を盗み出した攻撃者によって、クッキーが侵害されることはありません。したがって、攻撃者は、ユーザーがサーバーを要求するたびに同じCookieが通信されているため、Cookieを再利用してサーバーを実際のユーザーとして要求することができます。私は本当にクッキーの暗号化が助けになるか分かりません。送信者を認証するためにデジタル署名アルゴリズムも使用しますか?
最初の点については、セッションIDとユーザーIDの間にどのようにリンクを張らなければなりませんか?私が言ったような私の目標は、特定のユーザーに対応するセッションを取得することです。 –
セッションIDは、Cookieを持っているため、特定のブラウザの特定のユーザーに属していることがわかります。セッション状態のユーザーIDを確認することで、どのユーザーかを確認できます。 –