1

「サインインしたままにする」オプションがあるログインフォームがあります。ユーザーがこのオプションをチェックしてログインボタンを押した場合。次に、ユーザー名とパスワードをCookieに保存して、ユーザーのコンピューターに送信できると思います。次に、ユーザーがサイトを再度開くと、そのCookieがユーザーのコンピューターに存在するかどうかを確認できます。存在する場合は、Cookieからユーザー名とパスワードを取得し、ユーザーにサインインします。しかし、問題はどうすればユーザーのコンピューターにCookieを送信できるかということです。私の知る限りでは。あなたはそのようにクッキーを設定することができます

Cookie userCookie = new Cookie("userCookie", "loginUser");
//sessionCookie.setMaxAge(60 * 15);
userCookie.setPath("/");
httpServletResponse.addCookie(userCookie);

設定しない場合、setMaxAgeそれはブラウザレベルのCookieです。つまり、ユーザーがブラウザを閉じると、Cookieは削除されます。そのCookieをユーザーのコンピューターに送信し、ユーザーのコンピューターから取得して自動的にサインインするにはどうすればよいですか?

ありがとう

4

1 に答える 1

0

いずれにせよ、パスワードをCookieに保存しないでください。

永続的なCookieに関する優れた記事は次のとおりです。永続的なログインCookieのベストプラクティス http://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice/

記事の要点:

敷地内

  • クッキーは脆弱です。一般的なブラウザのCookie盗難の脆弱性とクロスサイトスクリプティング攻撃の間で、Cookieは安全ではないことを受け入れる必要があります
  • 永続的なログインCookieは、Webサイトにアクセスするための十分な認証です。これらは、有効なユーザー名とパスワードの両方を1つにまとめたものと同等です。
  • ユーザーはパスワードを再利用します。したがって、ユーザーのパスワードを回復できるログインCookieは、回復できないログインCookieよりもはるかに害を及ぼす可能性があります。
  • 永続的なCookieを特定のIPアドレスにバインドすると、多くの一般的なケースで特に永続的ではなくなります
  • ユーザーは、異なるマシン上の複数のWebブラウザーで同時に永続的なCookieを使用したい場合があります

著者は、ユーザー名を大きな乱数に関連付けることを提案しています。これは一般的な方法です。

于 2012-07-26T08:55:39.197 に答える