我正在使用 Django 的默认用户模型,并且电子邮件不是唯一的,现在我有多个用户使用相同的电子邮件地址。
您可以让 User_A 使用电子邮件地址 user_a@example.com,然后新用户 User_B 可以使用相同的电子邮件地址 user_a@example.com 注册。
这在任何编程领域都没有意义,并且会导致与电子邮件发送功能混淆,并可能导致密码重置错误(如果发送密码重置链接,两个用户共享相同的电子邮件地址)。
正如我所见,这并没有明显的安全漏洞,因为只有原始用户才能控制原始电子邮件地址,因此攻击者不会收到重置电子邮件。
但是,这可能会导致原始用户 User_A 被锁定在其原始帐户之外(如果他忘记了密码)并被阻止发出密码重置,因为 Django 仅尝试重置新用户 User_B。显然 User_A 想要访问他的帐户,而不是 User_B 的帐户。
- 理由是什么?
- 显然,密码重置功能与电子邮件相关联,所以如果我根据电子邮件重置密码,哪个用户(按照密码重置链接)将被重置?
- 如何使电子邮件字段独一无二?