我正在尝试开始一个新的 ASP.NET MVC4 项目,并且有一些关于 View Model 安全性的问题。
假设我有一个类来代表应用程序用户
public class User
{
public int UserID { get; set; }
public string Name { get; set; }
}
另一个代表应用程序用户任务的类
public class UserTask
{
public int TaskID { get; set; }
public int UserID { get; set; }
public string Task { get; set; }
}
我的同事似乎认为 UserTask 类的视图模型表示不应该包含出于安全目的的 UserID(以防止人们篡改 UserID)。
例子
public class UserTaskViewModel
{
public int TaskID { get; set; }
public string Task { get; set; }
}
我一生都找不到任何支持这一主张的文件,也无法得到直接的答案。
这是普遍现象吗?出于安全目的,ViewModel 是否应该从视图中“隐藏”特定属性?我知道如果数据来自模型绑定,它可能会被篡改,只是想弄清楚这种情况下的首选方法/最佳实践是什么。