有人能解释一下ModelState.IsValid在MVC动作控制器中的确切含义吗?
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Something(MyViewModel model)
{
if (ModelState.IsValid)
{
}
}我知道ValidateAntiForgeryToken做了一些与表单发布来源相关的保护。
如果恶意用户绕过客户端的表单验证,并设法将一些恶意代码发布到“我的操作”方法中,ModelState.IsValid会检测到吗?
一旦表单被发布到我的应用程序中,我如何才能最好地保护服务器端?
是否需要手动检查模型中不包含XSS或SQL恶意代码?
附注:
我首先使用EF代码,我认为是相当安全的,但要确定。
发布于 2014-08-04 11:46:50
ModelState.IsValid意味着您在模型类中使用的所有验证等都是有效的或无效的。
代表前任:-
public class Emp
{
[Required]
public int EmpCd { get; set; }
}因此,如果在post中EmpCd具有空值或字符串值,则ModelState将变为无效.
如果您设法避免UI不引人注目的客户端验证,那么ModelState.IsValid 将验证.。
ModelState.IsValid告诉您是否向ModelState.中添加了模型错误。
默认的模型绑定将为基本类型转换问题添加一些错误(例如,为“int”传递一个“字符串”)。
示例DataAnnotations模型绑定器将使用从模型上的DataAnnotations属性获取的验证错误填充模型状态。
https://stackoverflow.com/questions/25117877
复制相似问题