OpenID を使用してユーザーをサインインさせる Web サイトがあります。私が使用しているライブラリは、ユーザーがログインしたときにユーザー プロファイルを返します。このプロファイルには、ユーザーの電子メール、名前、アバターへのリンク、およびOpenID プロバイダーが返したIDが含まれています。
ユーザーをログイン状態に保つための私の戦略は次のとおりです。
- ユーザーが初めてログインするときに、OpenID から返された ID に基づいてハッシュ コードを作成します。
- このハッシュ コードをユーザー ID と一緒に 2 つの Cookie に保存します。
- ユーザーが私の Web サイトにアクセスすると、これらの Cookie を確認し、利用可能な場合は ID とハッシュ コードを照合し、正しい場合はユーザーをログインさせます。
問題は次のとおりです。何らかの方法でこの Cookie 情報がユーザーから盗まれた場合、ハッカーはユーザー自身の代わりに簡単にログインできます。ユーザーがログインするたびに新しいハッシュ コードを作成し、ユーザーの Cookie を更新することはできますが、他のブラウザー/コンピューターの Cookie の情報が無効になります。
StackOverflow Web サイトはこのような問題に悩まされていないため、ログイン戦略を保護し、ユーザーがサインインしたままにする機能を追加するにはどうすればよいかを知りたいです。