【发布时间】:2014-02-22 20:11:32
【问题描述】:
我想知道为什么我必须在客户端验证表单,而它们无论如何都需要服务器端 (ajax) 验证以防被黑客入侵?
同时进行客户端和服务器端 (ajax) 表单验证有什么好处吗?
我的意思是他们做同样的事情,但 ajax 需要 300 毫秒,而客户端可能需要 0 毫秒,这是进行重复验证的一个很好的理由吗? :P
另外,使用单个服务器端验证,您可以从客户端删除不需要的 js,我只看到只有 ajax 验证的好处,你呢?
如果我要进行客户端验证,是否有一些方法/实践/逻辑可以遵循以不在服务器端重复验证?仅当客户端验证正常时服务器才执行操作/请求?
其实我的逻辑是:
服务器 + 客户端验证 更少的请求 -> 更多的代码(重复) -> 更多的麻烦 -> 更好的用户体验 服务器端验证(仅限 ajax) 更多请求 -> 更少代码 -> 更少麻烦 -> 可能相同的用户体验!?
对不起 maccheronic 英语 asd :D
【问题讨论】:
-
您多久发送一次 ajax 请求?他们填写了多少个字段?如果它是一个领域,那么它可能无关紧要。如果是 10,那么一旦我错误地输入了请求的数据,我个人就会想要反馈。在我看来,客户端是关于用户体验的,而服务器端是为了保护你的系统(我相信这可能被视为有点太黑白了)
-
嗯,我说的是一个非常简单的应用程序,最多 8/9 输入来验证;),我的意思是我同意你的观点,特别是对于有很多请求和很多用户的应用程序,我只是想知道我是否可以避免重复相同的确切验证:/
-
并非所有连接都以 300 毫秒处理。来自移动设备的连接可能不稳定,因此最好让您的服务器调用尽可能不频繁——无论它们的目的是什么。
-
@NathanielJohnson 同意这一点:) 我需要更新问题,因为最后我想知道我是否只能使用客户端验证并为某人可以发送的恶意请求做一些服务器端的事情:P
-
如果您使用的是角度表单,那么您可以在提交之前检查表单是否有效:docs.angularjs.org/api/ng.directive:form.FormController
标签: javascript ajax angularjs validation