生成电子邮件验证链接

Mat*_*eid 3 asp.net security email validation

对于Web应用程序,我想生成一个电子邮件验证链接并将其发送给用户.与许多公共网站一样,用户应点击它来验证他的电子邮件地址.看起来类似于:

http://www.foo.bar/validation?code=421affe123j4h141k2l3bjkbf43134kjbfkl34bfk3b4fkjb43ffe

任何人都可以帮我提一些关于正确生成这些验证令牌的提示吗?谷歌搜索最佳实践证明比我更困难.链接应该:

  • ...不要求用户先登录.
  • ...不会显示任何登录凭据以保证应用程序的安全
  • ...允许我作为开发人员有效地验证令牌.我很确定我需要一种方法从代码中提取用户标识符以满足此条件.不是吗?

此外,你会找一个随机代码,保存在某个地方,还是生成的代码,我可以重新计算验证?

谢谢你的回复!

马蒂亚斯

PS我正在使用ASP.NET 3.5,以防有一个开箱即用的功能来执行此操作.

Mat*_*ves 5

一些建议可以帮助您入门:

  • 使用GUID
  • 使用某种盐渍哈希(MD5,SHA1等)
  • 使用随机字符串(字符越多,碰撞的可能性就越小)
  • 暂时将其存储在数据库中,并将其加上时间戳,以便在一段时间后过期