我有一些在一些我已经构建的应用程序的位置,其中一个页面接受以下格式的查询字符串:然后http://localhost/MySite.aspx?ID=ab1cbabe-42e2-4d15-ab11-17534b829381
的GUID,查询字符串和验证
这些网页将采取查询字符串,试图解析它并使用具有强类型值的数据库调用来显示与guid匹配的数据。
实施例:
Guid value;
if (Guid.TryParse(Request.QueryString["ID"], out value))
{
SomeControl.Datasource = DatabaseCall(value);
SomeControl.Databind();
}
什么这显然意味着,任何用户(提供他们的GUID数据)可以在技术上访问任何其他用户的数据。显然,预测GUID几乎是不可能的,但我仍然对此感到不安。
其他人如何处理这个问题?有没有“正确”的方法?它更值得担心吗?
难道你不能使用普通的ASP.Net身份验证机制吗? – Smudge202
我不是ASP.NET的专家,但是我有一些构建Web应用程序的经验。当某人复制粘贴电子邮件/ skype/etc中的链接时会发生什么?你为什么不使用会话? –
显然我使用认证会话,但这不会影响问题。我们正在讨论一个经过认证的用户通过Guid,该用户对另一个用户帐户有效 - 虽然不太可能,但可以使用上述代码。 –