【发布时间】:2015-07-11 02:43:54
【问题描述】:
我总是对在我的视图中使用隐藏的输入来存储实体键存有疑虑。即使是好奇的用户也很容易在浏览器控制台中编辑此值,并可能最终更新该用户不应访问的实体。
有没有一种可行的方法可以在视图中保留这个值,而不会增加太多的加密等复杂性?
【问题讨论】:
-
This article 讨论了一种防止篡改隐藏字段的方法,但无论如何您都应该检查用户是否有权编辑/访问控制器中的实体
-
如果您担心有人篡改隐藏字段,那么您可以将其放在
Session中,然后在发布后检查发布的值是否与Session值匹配。正如@StephenMuecke 所说,如果您的安全性需要如此严格,那么应该在您的业务逻辑中检查此级别的编辑权限。 -
您不应依赖客户端的任何类型的混淆或验证。唯一的解决方案是验证当前用户是否拥有编辑发布实体的所有权限。
标签: asp.net asp.net-mvc asp.net-mvc-5