我应该依靠客户端验证到什么程度?

时间:2012-05-05 09:54:34

标签: javascript validation

我有一个冗长的形式,大量使用客户端验证(用jQuery编写)。为了防止用户使用已禁用的JavaScript提交表单,我添加了一个隐藏字段,该字段由jQuery填充“javascript_enabled”值。如果在浏览器中禁用了JS,则该字段将留空,并且不会提交表单。

问题是 - 这足够了,我应该感到安全,还是我必须为每个字段都包含服务器端验证?

4 个答案:

答案 0 :(得分:8)

没有。客户端验证仅用于方便用户,而不是保护您的服务器。

用户可以轻松更改所有客户端操作。

要保护您的服务器,您必须添加服务器端验证。

答案 1 :(得分:6)

到什么程度?没有。 您永远不应该依赖客户端验证。客户端验证完全用于UX目的。

真正的验证总是在服务器上完成。

答案 2 :(得分:4)

以上所有答案都有效,我只想补充几点。

客户端

  • 客户端验证可用于向用户提供即时反馈,而无需向服务器发送额外请求(较低流量)。

  • 可以轻松绕过客户端验证。 (禁用JavaScript,自定义HTTP请求,使用例如CURL访问)

服务器端

  • 无法绕过(除非您留下可利用的代码)

  • 良好的服务器端验证可以防止潜在的威胁,如XSS和SQL注入。 (可能导致获取其他用户数据,或破坏您的数据库)

我相信这会改变

我期待进一步开发WebSocket协议并使其得到更广泛的使用.WebSockets允许双向(全双工)连接,这意味着从服务器端验证将非常有效例如,每次将键输入到输入字段中。希望这种方法可以取消客户端验证!

答案 3 :(得分:0)

服务器端验证是必须的,客户端验证应该尽可能多地进行,而不需要往返服务器的开销。

相关问题