我正在考虑在DOM加载(document.onload
)之后在页面上加载jQuery引用,以加快页面加载带有形式的页面(我的理解是DOM可以完成在外部脚本引用完成加载之前)。
但是,我有点担心,如果用户能够在加载jQuery之前提交表单,那么我的客户端验证将不会到位。这将只留下我的服务器端验证,以防止表单提交滥用,感觉不太安全。
所以我的问题是用户可以在DOM准备就绪后立即提交表单,从而绕过我的客户端验证器,这些验证器在window.onload
触发之前未完成加载吗?
答案 0 :(得分:2)
服务器端是验证的最佳方式,无论客户端验证如何,都应该完成。尽管如此,当用户点击提交时触发您的客户端验证,您应该没问题。
答案 1 :(得分:1)
“......用户可以在DOM准备好后立即提交表单,从而绕过我的客户端验证器......”
是的,例如:用户可以轻松保存,编辑表单,删除任何验证JavaScript,然后在浏览器中加载该版本。然后他们可以将任何他们想要的值发送到任何参数。在服务器端进行验证和重新格式化可确保数据的使用/存储安全。 (Like in the case of an SQL Injection attack...)
我主要使用客户端验证来进行界面设计逻辑,比如使用正则表达式来确定我是否应该在电子邮件字段中显示public JsonResult Post(itemVm model)
{
var item = new Item
{
Name = model.Name,
IsActive = model.IsActive
};
// do saving here and commit to database
model.id = item.Id;
return Json(model, JsonResultBehavior.DenyGet);
}
。永远不要依赖客户来使数据良性化。