Jsp 使用验证服务器端还是客户端最好

Jsp 使用验证服务器端还是客户端最好,jsp,validation,client-side,server-side,Jsp,Validation,Client Side,Server Side,正如我们计划在几天内启动基于web的应用程序一样,有谁能告诉我哪一个是最好的应用程序,因为我们将在各种表单和登录页面中提供相同的应用程序 什么是验证? 验证是一个测试和确保用户通过web表单输入所需且格式正确的信息的过程 什么是客户端验证? 在客户端验证方法中,所有输入验证和错误恢复过程都在客户端即用户浏览器上执行。可以使用JavaScript、AJAX、HTML5等实现 什么是服务器端验证? 在服务器端验证中,所有输入验证和错误恢复过程都在服务器端执行。可以使用C#.NET、VB.NET等编程

正如我们计划在几天内启动基于web的应用程序一样,有谁能告诉我哪一个是最好的应用程序,因为我们将在各种表单和登录页面中提供相同的应用程序

什么是验证?

验证是一个测试和确保用户通过web表单输入所需且格式正确的信息的过程

什么是客户端验证?

在客户端验证方法中,所有输入验证和错误恢复过程都在客户端即用户浏览器上执行。可以使用JavaScript、AJAX、HTML5等实现

什么是服务器端验证?

在服务器端验证中,所有输入验证和错误恢复过程都在服务器端执行。可以使用C#.NET、VB.NET等编程语言来完成

差异和比较:

客户端验证比服务器端更快,因为验证在客户端(在浏览器上)进行,并且节省了从客户端到服务器的联网时间

另一方面,服务器端验证是在web服务器上完成的。然后,服务器将数据呈现为html页面并发送回客户端(浏览器)

服务器端验证比客户端更安全,因为用户即使查看源代码也看不到代码

客户端

您希望首先在客户端验证输入,因为您可以向普通用户提供更好的反馈。例如,如果他们输入了无效的电子邮件地址并移动到下一个字段,您可以立即显示错误消息。这样,用户可以在提交表单之前更正每个字段

如果您只在服务器上进行验证,则他们必须提交表单,获取错误消息,并尝试查找问题

(这种痛苦可以通过制作“粘性”表单来缓解,其中服务器会记住在每个字段中输入的内容并重新填写,但客户端验证速度更快。)

服务器端

您希望在服务器端进行验证,因为您可以防止恶意用户,恶意用户可以轻松绕过您的JavaScript并向服务器提交危险的输入

信任你的用户界面是非常危险的。他们不仅可以滥用您的UI,而且可能根本不使用您的UI,甚至不使用浏览器。如果用户手动编辑URL,或运行自己的Javascript,或使用其他工具调整HTTP请求,该怎么办?例如,如果他们从curl发送自定义HTTP请求会怎么样

不允许这样做不仅从安全角度看是幼稚的,而且也是非标准的:应该允许客户机以他们希望的任何方式发送HTTP,并且您应该正确响应。这包括验证

服务器端验证对于兼容性也很重要-并非所有用户都启用JavaScript

结论:

两种验证方法都有各自的意义。我建议您使用客户端验证和服务器端验证两种验证方法,以提供更好的用户体验,并确保您从客户端(浏览器)获得的输入经过实际验证,而不仅仅是由客户端验证