邀请使用安全密钥

时间:2012-01-23 11:01:26

标签: c# asp.net security

我想为ASP.NET应用程序实现一个邀请系统。系统管理可以添加保存在与安全密钥关联的数据库中的电子邮件地址。此安全密钥通过链接发送到电子邮件。当用户点击链接时,它可以注册一个新帐户,一切都会继续。

我是一个安全新手,所以我想知道是否有简单和安全(显然不会是美国国家航空航天局存档)实现类似机制的方法。

谢谢!

1 个答案:

答案 0 :(得分:2)

我可以想到两种方式:

  • 在数据库中创建一行,并在邀请中放置行的ID和ID的HMAC。例如?Register.aspx?UserId=3&hmac=54oreijwgoro564i3j2o543。由于客户端无法为其他ID重现HMAC,因此他不能简单地更改URL以注册其他用户。
  • 使用一些随机且唯一的字符串创建一行。因为字符串是随机的,所以很难猜测。当用户请求?Register.aspx?Code=grewgkrwgoerwgrew432时,在数据库中搜索具有该代码的行。在某些项目中,我们使用guid作为随机令牌,但我不知道它是多么安全/随机。