GUID作为下拉列表中的值字段,有更好的方法吗?

时间:2012-02-01 18:35:04

标签: asp.net-mvc-3 security razor

我在SQL Server数据库中有一个Products表,它有一个包含uniqueidentifiers的ID列,以及一个包含VARCHAR(100)的ProductName列。该表包含5000多个条目。

现在在我的剃刀cshtml页面上,我有一个显示这些pProduct名称的下拉列表。我所做的方法是将下拉值字段绑定到ID列并将文本显示到ProductName。这意味着在客户端,如果有人在他们的浏览器中查看视图源(或使用任何http嗅探器等),他们可以看到与这些产品名称关联的所有GUID。现在,当用户提交此信息时,我已经设置了服务器端验证,我确保所有提交的GUID都是 1)有效的Guids(不是字符串或其他任何东西) 2)提交的Guid存在于Products中的ID中。这样可以确保不会处理Products.ID中不存在的任何Guid。

用户可以看到此GUID数据的事实是否会暴露任何安全风险?有没有更好的方法来处理这种情况?

1 个答案:

答案 0 :(得分:1)

假设您的数据库有外键,这不会导致安全漏洞。即使它没有外键(产品表和产品订单之间),您也可以先查找产品。如果它不存在,请忽略该请求。

所以不,这不是安全漏洞 - 除非在.NET框架的Guid解析中存在安全漏洞。

相关问题