Asp.net mvc 何时使用guid进行安全保护?

Asp.net mvc 何时使用guid进行安全保护?,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,我是MVC新手,对保持我的MVC应用程序的安全感兴趣。例如,我关注的一个领域是Approve页面,该页面可用于批准要审查的项目。问题是某些用户只能批准某些项目。批准应用程序时,将被批准项目的ID发布到控制器中的ApproveItem ActionResult。问题是,理论上(例如FireBug)有人可能会将随机ID发布到此ApproveItem控制器(包括他们可能不允许批准的项目)。与其在过滤中尝试捕捉每一个问题,为什么不使用GUID作为ID呢?然后,我几乎100%确定用户只批准了允许他们批准的

我是MVC新手,对保持我的MVC应用程序的安全感兴趣。例如,我关注的一个领域是Approve页面,该页面可用于批准要审查的项目。问题是某些用户只能批准某些项目。批准应用程序时,将被批准项目的ID发布到控制器中的ApproveItem ActionResult。问题是,理论上(例如FireBug)有人可能会将随机ID发布到此ApproveItem控制器(包括他们可能不允许批准的项目)。与其在过滤中尝试捕捉每一个问题,为什么不使用GUID作为ID呢?然后,我几乎100%确定用户只批准了允许他们批准的项目


在这种情况下,你们用什么来保证安全?在我看来,GUID是最简单的。您认为呢?

GUID将是实现这一点的最简单的方法。 否则,您可以使用“个人角色”级别的安全性来批准您的项目

你的问题(或者至少是瓷砖)没有真正意义。您可以在安全系统中为全局唯一标识使用GUID,但不应将其用作安全系统

@ePezhman提到了一个潜在的问题,但如果您正确地验证了用户的操作,这就不是问题


你的意思是。你的应用程序实际上并不安全,只是很难猜到一些顽皮的输入。您应该做的是尝试避免和验证当前用户是否具有对实体执行操作所需的权限。也就是说,是否允许用户批准该项目?如果它们不是,您应该显示一条错误消息或采取其他适当的措施(记录尝试、通知管理员等)。

这似乎与堆栈溢出无关,但对于另一个好站点来说,一个很好的问题可能是GUID不是安全的,只是唯一的。通过适当授权保护您的行为。几乎所有的事情都已经为你做了。