我想在我的网站上进行电子邮件验证。
我计划向用户发送一封电子邮件,其中包含一个验证电子邮件地址的链接,其中我计划包含一个密钥:
str(uuid.uuid4())
验证链接将在一段时间后过期。
我的问题:
这是好的方法吗?安全、可靠?我是否必须检查 uuid.uuid4() 是否唯一?uuid.uuid4() 值作为 URL 的一部分是否安全?
我想在我的网站上进行电子邮件验证。
我计划向用户发送一封电子邮件,其中包含一个验证电子邮件地址的链接,其中我计划包含一个密钥:
str(uuid.uuid4())
验证链接将在一段时间后过期。
我的问题:
这是好的方法吗?安全、可靠?我是否必须检查 uuid.uuid4() 是否唯一?uuid.uuid4() 值作为 URL 的一部分是否安全?
这是好的方法吗?安全、可靠?我是否必须检查 uuid.uuid4() 是否唯一?uuid.uuid4() 值作为 URL 的一部分是否安全?
是的,这应该足以进行电子邮件验证。
根据Georg Schölly的说法,
uuid4() 生成...一个随机的 UUID。发生碰撞的可能性真的非常非常小。足够小,你不应该担心它。问题是,一个糟糕的随机数生成器使它更有可能发生冲突。
然后他引用了 Bob Aman的话,
坦率地说,在没有恶意行为者的单个应用程序空间中,地球上所有生命的灭绝将在您发生碰撞之前很久就发生,即使在版本 4 UUID 上,即使您每秒生成相当多的 UUID。
所以我想说这对于电子邮件验证是安全可靠的。并且不应该需要确保 UUID4 是唯一的(但我不会在生成它时检查一下)。此外,只要 UUID 是十六进制编码(其规范形式),它就可以安全地作为 URL 的一部分。