客户端校验不经过服务器端的处理,在发出请求之前就对用户输入的数据进行验证。通常这种方式都是通过一些脚本语言实现的,最为常用的脚本语言就是JavaScript。服务器端的验证代码在客户端是无法得知的,而客户端的验证代码如JavaScript代码段则存在于用户浏览的页面中,用户是可以获得的。
在ASP.NET出现之前,ASP中进行数据校验是非常复杂的。由于不存在数据验证控件,开发人员必须手工编写大量的代码,而这些代码的重复程度又很高。因此,造成了极大的浪费,也使得开发人员对数据验证颇为头痛。
在ASP.NET中,客户端验证则十分便捷。由于验证代码存在于用户端,数据验证不需要经过服务器端处理,因此此种验证的响应速度非常快。在当时,这种用户体验是服务器端数据验证所不能达到的,所以,用户倾向于此类数据验证的方式。
但是,客户端数据验证也不是完美无缺的。由于客户端数据验证的特点,即所有的代码都暴露在最终用户的浏览器中,用户可以非常简单地获得数据验证的源代码(几乎所有的浏览器都提供了查看当前页面源代码的功能),这样,用户就可以简单地获得数据验证的必要信息。此时,一个无需拥有太高级黑客技巧的用户就可以简单地规避这些数据验证。
可以看到,如果采用客户端的数据验证,那么安全性难以得到保证。因此,如果要保证安全性,服务器端的数据验证则更胜一筹。
一般而言,应当将客户端有效性验证看作对用户的好意。它给用户提供了即时反馈,不需要向服务器发送完整回送,就使他们知道他们忘了输入必需的字段,或者输入了不正确的数据。另一方面,服务器端有效性验证是唯一真正的有效性验证方式。这是有效地防止无效数据进入系统的唯一有效方式。
ASP.NET为开发人员提供了一套完整的服务器控件来验证用户输入的信息是否有效,这些控件可与ASP.NET网页上的任何控件(包括HTML和服务器控件)一起使用。



