2

DotNetOpenAuth を使用して Google ユーザーを識別しています。現在、彼らの電子メール アドレスを取得し、そのコピーをデータベースに保存しています。しかし、Google アカウントの電子メール アドレスを変更した場合はどうなるでしょうか。その後、私のコピーを彼らのプロフィールにリンクできなくなりました。

DotNetOpenAuth を通じて Google アカウントを一意に識別する方法はありますか?

4

1 に答える 1

2

IAuthenticationResponse.ClaimedIdentifierユーザーを一意に識別するに は、常に を使用してください。

OpenID のセキュリティ モデルは、この設計に基づいています。電子メール アドレスの使用は、多くの点で安全ではありません。どのプロバイダーも、ユーザーが特定の電子メール アドレスを所有していると主張する肯定的なアサーションを発行できます。OpenID は、OP が電子メール アドレスについて嘘をつくことを防げないため、電子メール アドレスとユーザー キーだけを使用すると、ユーザー スプーフィング攻撃に対して無防備になります。OP が不正をしようとしているわけではない場合でも、OP が電子メール アドレスを確認したのか、単にユーザーに電子メール アドレスを尋ねただけなのかがわからないため、通常は信頼できません。

Google が嘘をつかないと信頼している場合でも、電子メール アドレスをユーザー ID として扱わない理由がいくつかあります (軽減できるものもありますが、明らかではありません)。たとえば、Google では、ユーザーが Google アカウントの背後にある電子メール アドレスを変更できるようにしています。ユーザーがこれを行ってから Web サイトに戻った場合、サイトはそのユーザーを別のユーザーとして識別します。さらに悪いことに、別のユーザーが後で新しい Google アカウントのリサイクルされたメール アドレスを要求した場合、サイトはそのユーザーを古いユーザーとして認識し、新しいユーザーに古いユーザー データの束へのアクセスを許可します。

OpenID Claimed Identifiers は、この問題をすべて回避するように設計されています。

于 2012-07-11T13:24:05.407 に答える