ユーザー アカウントを一意の電子メール アドレスに制限するのは、かなり一般的です。したがって、ユーザー登録フォームで、電子メールの検証を行って、次のようなメッセージを返しています
foo@bar.com にはすでにアカウントが登録されています
その後、攻撃者がこのフォームを使用してユーザーに関する情報を特定できる可能性があることに気付きました。セキュリティを損なうことなくユーザーに検証メッセージを提供する別の方法はありますか? それを回避する方法はないように思えます。
ユーザー アカウントを一意の電子メール アドレスに制限するのは、かなり一般的です。したがって、ユーザー登録フォームで、電子メールの検証を行って、次のようなメッセージを返しています
foo@bar.com にはすでにアカウントが登録されています
その後、攻撃者がこのフォームを使用してユーザーに関する情報を特定できる可能性があることに気付きました。セキュリティを損なうことなくユーザーに検証メッセージを提供する別の方法はありますか? それを回避する方法はないように思えます。
ほとんどの種類のサイトでは、この情報を明示的に非表示にすると、ユーザーエクスペリエンスのトレードオフが不十分になると思います。より良い解決策は、CAPTCHAを使用して、電子メールアドレスの戦争ダイヤルを防ぐことです。
例外は、攻撃者が(単に「何らかのアカウント」を見つけようとするのではなく)特定のユーザーに関する情報を探している場合です。たとえば、サイトが匿名性に強い関心を持っている人々に対応していて、特定のユーザーがサイトを使用しているかどうかを調べることに強い関心を持っている攻撃者がいる場合、アプローチは異なるはずです。私のアプローチは、「登録済み」エラーを示す電子メールをアドレスに送信することです。ユーザーエクスペリエンスの煩わしさは、ユーザーの匿名性への関心よりも重要です。
1 つの方法が考えられます。メール アドレスを尋ねて、そのメール アドレスに 1 回限りの登録フォームへのリンクを送信することができます。スパムを阻止するためにキャプチャが必要になる場合があります。電子メールがシステムに既にある場合は、既にアカウントを持っているというメッセージが送信される可能性があります。
虐待被害者の支援グループのように、あなたのウェブサイトが特に秘密にされていない限り、これは不要だと思います.
提供した電子メール アドレスは使用できないことを伝えるだけですか? それ以上の理由を言う必要はありませんか?自分のメールアドレスではないことがわかっている場合でも、既存のアドレスであると推測する可能性がありますが、あなたはそれを確認していません。
または
そのアドレスにメールを送信したので、確認する必要があることを伝えるのはどうでしょうか。
メールアドレスのポイントであるため、メールアドレスがすでに使用されていることを示さずにエラーメッセージを作成することは実際には不可能だと思います。
これらは私が見るオプションです:
1)「メールアドレスが無効です」などの明確ではないエラーメッセージを表示します
。2)登録を受け入れ、以前のアカウントについてメールでユーザーに通知します(私はそれをお勧めします)
いずれの場合も、同じクライアントによるキャプチャコードとスロットルリクエストによってセキュリティを向上させることができます。ユーザーのプライバシーをそれほど気にする場合は、一意の電子メール登録を強制することは、サイトに適していない可能性があります。