什么验证更好地练习 - 服务器端或客户端验证?

时间:2016-12-09 03:35:14

标签: php validation

我正在制作一个新系统,并希望知道使用哪种验证来实现更方便的编码和安全的系统。

我应该使用服务器端还是客户端验证?

3 个答案:

答案 0 :(得分:4)

绝对需要服务器端验证,因为客户端无法强制使用数据。

客户端是可选的,因为没有它,坏的数据仍然会通过回发被捕获。有了它,您可以更快地警告用户出现问题。

我想提到一个悲观的主题 - 永远不要相信用户。他们要么犯了错误,要么他们要打破你的应用程序。

答案 1 :(得分:1)

我将双方验证。因为两者都有不同的意义。 如果你只是在客户端进行验证,那么有人可能会让你的生活变得悲惨。如果您只是在每次客户端必须将完整数据填充到服务器时对服务器端验证进行任何错误,那么只有他/她才能知道错误。因此,如果您只是通过单击显示错误,那么这对您们双方都有好处,因为您不必每次都处理错误数据。

答案 2 :(得分:0)

我第二,'The1nk'指出。但另外一点是我们必须支持用户快速响应错误和有目的的尝试,因此客户端验证是有效的。

当然,您必须使用服务器端验证和客户端验证,就像过去一样,您不需要使用硬编码的Javascript验证(尽管可以进行复杂的数据验证)。如果您想使用一些简单的验证,HTML 5中提供了许多功能,您可以使用它们,如下所示,

必填文字字段:添加html输入属性'required'(注意:此属性没有值)

特定类型文本字段: HTML 5中添加了许多不同类型的“类型”属性值,如电子邮件,数字,日期等...可以使用它们来验证这些字段(还有其他属性也适用于那些输入类型,例如数字最小和最大属性)

一些有用的链接

HTML form input types

HTML form attributes

由于这是纯HTML,因此长期关注(如果用户在浏览器中禁用JS会怎么样?)可以在某种程度上解决。但是,请记住“软件工程中没有银弹” - 弗雷德布鲁克斯。