我镇上有一家酒吧,如果您使用他们的网站注册他们的时事通讯并提供“独特”的电子邮件地址,您将获得免费饮料。一时兴起,我决定使用myemail+one@gmail.com
第二次注册。它让我。我现在坐在一堆舒适的免费饮料券上。
这让我想到了我们这里的系统,其中电子邮件地址被认为是唯一标识符。检查代码,果然,如果我们在我们的业务中提供优惠券,那么 else 就会很漂亮。
基本的,黑暗的修复是检查“+”字符并忽略它之后的所有内容(直到@
),并使用它进行比较。但我不确定这是否是+
字符的 intent 。那会有用吗?
其次,是否有任何其他警告允许用户使用看似不同的电子邮件地址多次注册,但实际上最终会在同一个邮箱中?
这个问题与语言无关。
答案 0 :(得分:2)
虽然使用加号作为电子邮件地址别名是gmail的一项已知功能,但其他邮件程序要么不允许,要么使用减号。 ' +'是一个合法的字符,根据RFC用作电子邮件地址的一部分。
使用'。'也是一个灰色地带。 john.doe@gmail.com和johndoe@gmail.com也发送到同一个电子邮件地址,看起来不一样。
为了验证电子邮件地址的唯一性,您必须为您的应用程序准备一个规则库,让它保持最新并且仍然会有惊喜......