【发布时间】:2015-10-03 15:14:09
【问题描述】:
我有一个名为 Account 的控制器和一个名为 AddFunds() 的操作
在我的 HttpGet Addfunds() 操作中,我将视图绑定到具有 AccountId 属性的 ViewModel,因此默认情况下,视图包含一个名为 AccountId 的隐藏字段。
在 HttpPost AddFunds() 操作中,我收到了更新后的 ViewModel,其 AccountID 与 HttpGet 方法传递的相同,还有一些其他参数,例如 Amount 等。
我可以做些什么来防止一个人调用该方法直接传递一个假的AccountId?
AntiForgery 令牌会阻止这种情况吗? 我应该采取其他措施吗?
作为一个附带问题,是否可以避免在隐藏字段中传递 AccountID,或者是否有必要知道我在处理哪个实体?
谢谢
【问题讨论】:
-
不要描述你的代码,直接贴出来。
-
简短的回答是,在允许任何类型的更改之前,您需要将传递的 AccountID 与经过身份验证的用户的 AccountID 进行比较。然而,这是一个相当大的话题,您应该阅读安全性如何为您的 asp.net mvc 应用程序工作。这是一个好的开始blogs.msdn.com/b/rickandy/archive/2012/03/23/…
标签: c# asp.net asp.net-mvc security asp.net-mvc-4