現在、私のアプリケーションでは、ユーザーのCookieはuserIDを含む特定の形式で生成されます。ログインするたびにCookieがランダムに生成されるようにしたいので、一度Cookieが盗まれたとしても、ハッカーがCookieを永久に使用することはありません。
この方法でCookieを処理するためのベストプラクティスは何ですか?それらをどのように保存/取得する必要がありますか(ハッシュテーブル/データストア...)?
ありがとう
現在、私のアプリケーションでは、ユーザーのCookieはuserIDを含む特定の形式で生成されます。ログインするたびにCookieがランダムに生成されるようにしたいので、一度Cookieが盗まれたとしても、ハッカーがCookieを永久に使用することはありません。
この方法でCookieを処理するためのベストプラクティスは何ですか?それらをどのように保存/取得する必要がありますか(ハッシュテーブル/データストア...)?
ありがとう
HttpSession
GAE/Jがサポートして
いる組み込みのJavaセッションオブジェクトを使用することをお勧めします。GAEでセッションを有効にする方法に関するドキュメントについては、こちらをご覧ください。
セッションを一定期間後に期限切れにするように設定することも、セッションに番号を保存して外部でセッションを確認することもできます。
次のパラメータを試すことができます。
それを(のような)1つの文字列に結合し13413:1826271762:b026324c6904b2a9cb4b88d6d61c81d1
、のようなCookieに保存しUSERID
ます。
必要なすべてのリクエストで:
私はリックに同意します。コンテナ設計者は、リクエストが同じユーザーからのものであり、車輪の再発明をしたくないかどうかを確認するという汚い仕事をしましたか?
HttpSession session = request.getSession();
これにより、新しいセッションがまだ存在しない場合は作成されますが、存在する場合は既存のセッションが取得されます。
session.setAttribute('key', value);
値は任意のシリアル化可能なPOJOであり、キーは文字列です。次のコードを使用して、アプリケーションのスコープ内に保存されている値を取得できます。
Object value = (Object) session.getAttribute('key');
セッションの使用方法の詳細については、HttpSessionsのJava仕様を確認してください。