javascript - 删除服务器端验证并进行完整的客户端验证?

标签 javascript validation optimization client-side server-side

是否建议在客户端进行所有必要的输入验证?我想优化服务器的处理(意味着减少双重验证,以便程序员可以只关注业务逻辑)。

示例:

  • 在客户端,有一个“年龄”输入文本字段(JavaScript 除非在范围内,否则不允许提交表单)

  • 在服务器端,不再验证“年龄”

    //而不是再次验证年龄

    int 年龄 = Integer.parseInt(request.getParameter("age")); //检查年龄是否有效

    if(age >= 0 ) {/* 代码 */}

我们可以只继续

int age = Integer.parseInt(request.getParameter("age"));

因为我们非常确定它是有效的。

为了适应 Web 浏览器中禁用的 JavaScript,我们需要首先进行检查。如果启用了 JavaScript,则继续访问该应用程序,否则阻止该应用程序。 (就像 Facebook 一样)

我的理论/概念可以接受吗?

最佳答案

如果您需要强制执行某些输入模式,则不能依赖来自客户端的数据。人们可以禁用 JavaScript,或者完全绕过您的验证并发送他们想要的任何数据。不过,大多数普通用户不会有这个问题,而且数据无论如何都是来自客户端。

简而言之,这取决于

对于我的大多数应用程序,我都有客户端验证,并且只担心服务器端的一些可能引发错误情况的事情。例如,如果我有一个向某人发送电子邮件的表单,我将使用 JavaScript 检查有效的 to: 电子邮件地址,并提醒用户。在服务器端,如果该电子邮件地址无效或不存在,我将简单地抛出一个错误编写代码,让用户清楚地知道出现了问题。对于消息正文,我将验证客户端是否有消息正文,但服务器端我不会真正关心。同样,您做什么取决于您的需求。

关于javascript - 删除服务器端验证并进行完整的客户端验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19150111/

相关文章:

javascript - ionic 框架中的选项卡

javascript - 如何在 SL4A 上从 python 调用 javascript 方法?

spring - 如何提高 Spring MVC 的性能?

c - 为什么 BSS 中静态数组的第二次循环比第一次循环更快?

c - 优化循环内的重复模数

javascript - 如何仅在从服务器获得响应(数据)后才打开弹出窗口?

javascript - 在 D3.js 插件中链接函数

python - 简单的Python输入错误

validation - 是否有必要验证 SAML 断言

WPF 数据网格 : set focus on a specific cell after a row validation error