0

OpenID を使用してユーザーをサインインさせる Web サイトがあります。私が使用しているライブラリは、ユーザーがログインしたときにユーザー プロファイルを返します。このプロファイルには、ユーザーの電子メール、名前、アバターへのリンク、およびOpenID プロバイダーが返したIDが含まれています。

ユーザーをログイン状態に保つための私の戦略は次のとおりです。

  • ユーザーが初めてログインするときに、OpenID から返された ID に基づいてハッシュ コードを作成します。
  • このハッシュ コードをユーザー ID と一緒に 2 つの Cookie に保存します。
  • ユーザーが私の Web サイトにアクセスすると、これらの Cookie を確認し、利用可能な場合は ID とハッシュ コードを照合し、正しい場合はユーザーをログインさせます。

問題は次のとおりです。何らかの方法でこの Cookie 情報がユーザーから盗まれた場合、ハッカーはユーザー自身の代わりに簡単にログインできます。ユーザーがログインするたびに新しいハッシュ コードを作成し、ユーザーの Cookie を更新することはできますが、他のブラウザー/コンピューターの Cookie の情報が無効になります。

StackOverflow Web サイトはこのような問題に悩まされていないため、ログイン戦略を保護し、ユーザーがサインインしたままにする機能を追加するにはどうすればよいかを知りたいです。

4

2 に答える 2

2

これを行う標準的な方法は、意味のないセッションIDを割り当て、それをCookieとして送信することです。データベースでは、そのセッションIDと一緒にユーザーの資格情報を保存できます。ユーザーがログアウトすると、そのセッションIDを無効にすることができます。

于 2012-04-11T05:35:10.653 に答える
1

これは、クライアントがログインしたままにするためのすべてのメカニズムの問題ではありませんか? たとえば、Gmail にログインし、私があなたの Cookie を盗んで自分のブラウザーに入れても、私のブラウザーとあなたのブラウザーを区別する方法はなく、私はあなたの Gmail にアクセスできます。あなたが提案している種類の攻撃を止める方法はないと私は信じています(ユーザーがコンピューターをウイルスなどから解放し、Cookieを盗む可能性があることを除いて)

于 2012-04-07T10:05:41.943 に答える