【发布时间】:2009-06-02 05:37:17
【问题描述】:
我有一个场景,我正在构建的网站的用户需要能够将一些基本信息输入网络表单而无需登录。该站点正在使用 ASP.NET/C# 进行开发,并使用 MSSQL 2005 处理其关系数据。
网站将向用户发送一封电子邮件,为他们提供一个独特的链接以输入他们所需的特定信息。该电子邮件将与我们在注册论坛等网站时收到的电子邮件样式非常相似,其中包含一个随机生成的、唯一的 URL 参数,该参数专门针对单一目的(例如验证论坛的电子邮件地址)。
我的问题是关于这个问题的安全实施。我正在考虑使用 GUID 作为唯一标识符,但不确定它在安全领域中的含义。
- GUID 是否足够长,以至于无法轻易猜出值(或随着时间的推移被暴力破解)?
.NET 的 GUID 实现是否足够随机,因为在“密钥空间”中生成所有可能值的机会均等?
如果使用 GUID 是一种可接受的方法,那么网站是否应该通过 URL 重写或通过将数据表中的信息与 GUID 关联作为参考来重定向到信息?
使用 URL 重写会隐藏数据的真实来源吗?
我是否应该考虑使用 TSQL 的 SELECT NEWID() 作为 .NET 实现的 GUID 生成器?
我解决这个问题的方法完全错了吗?
非常感谢,
卡尔
【问题讨论】:
标签: c# asp.net tsql cryptography security