1

JavaサーブレットWebアプリケーションがあります。アプリケーションには、2つの認証ロジックがあります。1。ユーザー名とパスワードによる認証-ユーザーが入力したユーザー名とパスワードを使用したWebフォームによる標準ログイン。2.Cookieによる承認。一度、ユーザーはユーザー名とパスワードを入力し、「私を覚えている」チェックボックスをチェックします。その後、ユーザー名/パスワードを入力しないでください。オプション番号2(Cookie)について質問があります。現時点でのロジックは次のとおりです。ユーザーが「rememberme」をチェックしたかどうかを確認し、ユーザー名とパスワードのハッシュを取得してCookieに保存します。(2つのCookie:ユーザー名パスワード)しかし、道は確保されていないと思います。誰かがCookieを盗んで、Webアプリにアクセスできるからです。質問は次のとおりです。Cookieを介して許可されたユーザーに最も安全な方法は何ですか?Cookeisには何を保存すればよいですか?

4

2 に答える 2

1

まず、サーバーとの通信にSSL/TLSを使用します。あなたはあなたのサイトのために安い証明書を購入することができるので、それを汗を流さないでください。それでも、ユーザー名とパスワードをCookieに保存しないでください。誰かがコンピューターをハッキングしてパスワードを取得する可能性があるため、安全ではありません。これは問題ではありませんが、その混乱に巻き込まれてはいけません。あなたを噛むために戻って。

通常、一定の時間が経過すると期限切れになるランダムなセッションIDを作成し、それを現在のタイムスタンプとともにユーザーテーブルに挿入します。そのセッションIDは、Cookieに保存するものであり、Cookieを使用してログインしようとするたびにデータベースで確認します。古すぎる場合(タイムスタンプと決定した長さを確認)、セッションIDを無効にして、ユーザー名とパスワードを使用してログインするように依頼し、新しいセッションIDを作成します。

CookieにIPアドレスとブラウザを追加するなど、Cookieが別のコンピュータにコピーされるのを防ぐための機能は他にもあります(SSL / TLSの目的である、ネットワーク経由でのコピーについて心配する必要はありません)。と他のいくつかのものが、それはあなたがしていることにはやり過ぎかもしれません。

于 2012-10-01T15:22:30.390 に答える
0

HTTPSを使用している場合(そうあるべきです)、その人の実際のコンピューターからその情報を取得しない限り、誰もCookieを「盗む」ことはできません。ユーザーがログインしたら、通常のHTTPリクエストでページにアクセスしないことを確認してください。アクセスしないとCookieデータが公開されます。

于 2012-10-01T15:18:27.660 に答える