大家好,我是栈溢出新手。
我已经开始使用asp.net mvc开发一个网站。
我有一个存储了大量信息的数据库,其中一些我不想向最终用户展示。
数据库表示例- Property.sql
Id, Address, Area, Price, Owner Phone no, Owner home address
我已经创建了一个视图,这个视图是强类型到这个数据库表(模型),但视图只使用'Address', 'Area'和'Price'字段
这是一个安全问题-
是否可以使用fiddler或其他方式访问传递给视图的其他字段?还是先使用所需的信息生成视图,然后再传递给浏览器?
不,视图在发送到浏览器之前呈现在服务器端,因此客户端不可能看到此信息。然而,将域模型泄漏到视图中并不是一个好主意,您应该创建特定于视图的模型并传递这些模型,例如
public class Customer
{
public Guid Id { get; set; }
public string Address { get; set; }
public string Area { get; set; }
public decimal Price { get; set; }
public string Owner { get; set; }
...
}
public class CustomerViewModel
{
public string Address { get; set; }
public string Area { get; set; }
public decimal Price { get; set; }
}
如果您关心将模型数据暴露给视图(客户端),请使用特定于页面需要的视图模型。
然而,如果你不序列化你的模型,只使用它来填充视图中的一些数据(在服务器端),额外的数据不会暴露给客户端。