在ASP.NET(C#)中实现安全,独特的“一次性”激活URL

前端之家收集整理的这篇文章主要介绍了在ASP.NET(C#)中实现安全,独特的“一次性”激活URL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个场景,我正在建设的一个网站的用户需要能够将一些基本信息输入到Webform而不必登录。该网站正在使用ASP.NET / C#开发,并正在使用MSsql 2005作为其关系数据。

用户将从网站发送一封电子邮件,为他们提供一个独特的链接,以输入所需的具体信息。电子邮件将非常类似于我们在注册网站(如论坛)时收到的电子邮件样式,其中包含专门针对单一目的(例如验证论坛的电子邮件地址)的随机生成的唯一URL参数。

我的问题是关于这个问题的安全实现。我正在考虑使用GUID作为唯一标识符,但不确定它在安全领域的影响。

> GUID足够长,使得值不能轻易猜到(或者随着时间的推移强制)?
> .NET的GUID插入是否足够随机,在“关键空间”中产生所有可能的值的机会相等?
>如果使用GUID是可以接受的方法,那么网站是否应该通过URL重写或通过将datatable中的信息与GUID相关联来重定向到信息作为参考?
>将使用URL重写隐藏数据的真实来源?
>我应该考虑使用Tsql的SELECT NEWID()作为GUID生成器通过.NET实现?
我对这个问题的处理方式完全错了吗?

非常感谢,

卡尔

解决方法

是的,2128就够了。
>否,GUID实现旨在生成唯一的GUID而不是随机的GUID。您应该使用 cryptographically secure随机生成器(例如 RNGCryptoServiceProvider)生成16个随机字节,并使用该字符串初始化Guid结构。 是的,这是一个可以接受的方法。两者都会奏效 >是的,如果你不给出任何其他线索 >不,goto 2 >不,很好您只需要使用加密安全的随机生成器来生成GUID。

猜你在找的asp.Net相关文章