GUID作为下拉列表中的值字段,任何更好的方法



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

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

事实上,用户可以看到这个GUID数据,它会暴露任何安全风险吗?有什么更好的方法来处理这种情况吗?

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

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

最新更新