有人肯定会问,有了客户端验证,为何还需要服务器端验证,或者反过来问。
我的回答是:“服务器端的验证是必要的,客户端的验证是充分的。”
客户端验证包含在已下载的页面中,当用户提交表单时候,它直接在已下载到本地的页面中调用脚本来进行验证,为用户提供快速反馈,这样可以减少服务器端的运算。而服务器端的验证则是将页面提交到服务器处理,服务器上的ASP页面先执行对表单的验证,然后再返回结果到客户端。
为什么“服务器端的验证是必要的”?很多人只在客户端进行验证,事实表明这个是很不安全的。一般来说,客户端验证对大部分的用户来说是可行的。然而一旦用户设置浏览器禁止运行脚本代码,则所有客户端的验证都会失效。如果碰到别有用心者,忽视服务器端的验证将付出巨大的代价。服务器端验证是构建安全Web应用程序必需的,只有服务器端验证才可以提供真正应用程序级的安全。
为什么“客户端的验证是充分的”?对于大部分的正常浏览者来说,客户端验证都不会被屏蔽,此时如果只进行服务器端验证,通不过验证返回错误的几率将大增,导致消耗时间较长,将对服务器产生很大压力。而如果我们在客户端先设置一个检测屏障,让送至服务器端的数据顺利通过检验,将使服务器端的负担大为减轻,所以客户端验证就像我们呼吸空气时的鼻子,先把颗粒物杂质等阻挡在外面,从而大大减轻了肺的负担。
因此,强烈建议在编写网页时在客户端和服务器端都要进行数据验证。