2012-04-10 69 views
1

可能重复:
JavaScript: client-side vs. server-side validation客户端JavaScript/jQuery表单验证是否无用?

有很多的JavaScript/jQuery的客户端表单验证脚本在那里。但考虑到它是客户端,绕过验证并提交一个忽略验证规则的值的表单很容易。唯一的解决方案是也实施服务器端验证以保护自己。

客户端jQuery验证很有趣,它看起来很漂亮,但如果您已经必须实现服务器端验证,那么客户端验证有什么意义?看起来不必要的多余,浪费了开发时间。它没用吗?

此外,有没有什么好的方法来实现不需要服务器端验证的客户端验证?

+4

**引用OP **:_“客户端jQuery验证很有趣,看起来很漂亮,但是如果您已经必须实现服务器端验证,那么客户端验证的重点是什么?”_ **因为它很有趣,而且看起来很光滑。** – Sparky 2012-04-10 16:02:42

+4

所以你的用户有更好的体验。 – 2012-04-10 16:03:11

+0

http://stackoverflow.com/a/162579/29995 – 2012-04-10 16:06:32

回答

6

客户端验证总是可以被绕过。这是没有办法的。在处理敏感信息,写入/读取数据库或确实可能被黑客入侵时,应始终使用后端验证。

客户端验证就在那里,因为它更快。更确切地说,我的电子邮件地址的格式不正确,比我提交表单后,服务器检查出来并发回了一些东西。

2

它提供了更好的用户体验。这才是重点。而不是每次提交表单并等待服务器响应用户可以在更改表单值后立即看到验证结果。

3

一个字:可用性。你不仅应该写你的网络应用程序防御黑客。那里有更多的普通用户只是想要易用,直观的软件。

0

您总是需要服务器端验证。永远不要相信来自客户端的任何数据。客户端验证的目的是为了获得更好的用户体验。如果您希望人们使用您的网站,用户体验就非常重要。

0

客户端验证背后的想法是系统是“快速失败”。如果一个诚实的用户犯了一个错误,她会立刻被告知,这对用户(较少等待)和服务器(较轻的流量负载)有好处。

服务器端验证始终需要安全性存在;任何安全的客户端验证系统都必须假定用户不知道如何控制自己的机器。