可能重复:
JavaScript:客户端与服务器端验证
有很多 JavaScript/jQuery 客户端表单验证脚本。但考虑到它是客户端,绕过验证并提交带有忽略验证规则的值的表单相当容易。唯一的解决方案是同时实施服务器端验证以保护自己。
客户端 jQuery 验证很有趣,而且看起来很漂亮,但是如果您已经必须实现服务器端验证,那么客户端验证的意义何在?这似乎是不必要的冗余和开发时间的浪费。没用吗?
另外,有没有什么好方法可以实现不需要服务器端验证的客户端验证?
可能重复:
JavaScript:客户端与服务器端验证
有很多 JavaScript/jQuery 客户端表单验证脚本。但考虑到它是客户端,绕过验证并提交带有忽略验证规则的值的表单相当容易。唯一的解决方案是同时实施服务器端验证以保护自己。
客户端 jQuery 验证很有趣,而且看起来很漂亮,但是如果您已经必须实现服务器端验证,那么客户端验证的意义何在?这似乎是不必要的冗余和开发时间的浪费。没用吗?
另外,有没有什么好方法可以实现不需要服务器端验证的客户端验证?
始终可以绕过客户端验证。没有办法解决这个问题。在处理敏感信息、写入/读取数据库或任何可能被黑客入侵的事情时,应始终使用后端验证。
客户端验证就在那里,因为它更快。与其在我提交表单后立即知道我的电子邮件地址格式不正确,服务器检查它,然后发回一些东西,不如立即知道我的电子邮件地址格式不正确。
一个词:可用性。您不应该只编写 Web 应用程序来防御黑客。有更多的普通用户只想要易于使用、直观的软件。
它提供了更好的用户体验。这才是重点。用户可以在更改表单值后立即看到验证结果,而不是每次都提交表单并等待服务器响应。
您总是需要服务器端验证。永远不要相信来自客户端的任何数据。客户端验证是为了更好的用户体验而完成的。如果您希望人们使用您的网站,用户体验非常重要。
客户端验证背后的想法是系统是“快速失败的”。如果一个诚实的用户犯了错误,她会立即被告知,这对用户(更少的等待)和服务器(更轻的流量负载)都有好处。
服务器端验证始终是安全存在所必需的;任何安全的客户端验证系统都必须假设用户无法控制自己的机器。