私は Django のデフォルトのユーザー モデルを使用していますが、電子メールは一意ではありません。現在、同じ電子メール アドレスを持つ複数のユーザーがいます。
User_A にメール アドレス user_a@example.com を設定し、新しいユーザー User_B を同じメール アドレス user_a@example.com に登録できます。
これはどのプログラミング世界でも意味がなく、電子メール送信機能との混乱を引き起こし、誤ったパスワードのリセットを引き起こす可能性があります (2 人のユーザーが同じ電子メール アドレスを共有してパスワード リセット リンクが送信された場合)。
元のユーザーのみが元の電子メールアドレスを制御できるため、攻撃者はリセットされた電子メールを受信しないため、これには明らかなセキュリティ上の脆弱性はありません。
ただし、これにより、元のユーザー User_A が元のアカウントからロックアウトされ (パスワードを忘れた場合)、Django が新しいユーザー User_B のみをリセットしようとするため、パスワードのリセットを発行できなくなる可能性があります。明らかに、User_A は User_B のアカウントではなく、自分のアカウントへのアクセスを望んでいます。
- 正当化は何ですか?
- 明らかに、パスワード リセット機能は電子メールにリンクされているため、電子メールに基づいてパスワードをリセットすると、(パスワード リセット リンクをたどったときに) どのユーザーがリセットされますか?
- 電子メール フィールドを一意にするにはどうすればよいですか?