您同时使用客户端验证和服务器端验证技术吗?


Answers:


27

是的,你应该。

这样可以保持即时的用户反馈,而不会浪费回发,同时还可以防止用户禁用JavaScript。

这就是ASP.NET验证控件的工作方式。

当然,这并不会过度设计,因为在没有其他功能的情况下使用一个功能会有弊端。


8
+1。没有借口没有服务器端验证imo。
DBlackborough

11
服务器端是必要的,客户端是方便的。在Web应用程序中,您不能指望客户端验证。
BillThor 2011年

@BillThor -烨这就是完全正确的
billy.bob

如果您没有客户端验证,聪明的用户肯定会滥用您的应用程序
Umair

6

如果是这样,真的有必要吗?

是。

您在工程上吗?

没有。

如果前端验证功能丰富,它可以立即提供反馈。

后端可以被多个前端使用。这是对 HTML(无JavaScript)后备计划的唯一验证。


6

我了解到的有关安全性的第一个基础知识是,黑客将永远不会使用您的UI。

如果Web应用程序具有自己的表单本地版本,然后将其提交回服务器,通常可以轻松地绕过Web应用程序中的任何客户端验证。

客户端验证非常有用,尽管它可以改善用户体验并减少不必要的往返服务器执行验证的往返时间。


+1,我看过很多示例完全在客户端进行验证的示例
Karl'1

2

服务器端验证应该是最低要求。

对于可能有误的输入,您还应该添加客户端检查。

例如:检查电子邮件在客户端和服务器端的格式是否正确,但是检查它是否唯一可能是服务器端的检查。


1
“检查是否正常”是验证未验证,因此不适用。 了解差异。
billy.bob 2011年

2
您甚至看过您发布的内容吗?检查电子邮件是否唯一验证。举例来说,确认电子邮件和密码是有效的凭据,这是对的。无论如何,这仅仅是一个术语问题。
安德里亚(Andrea)

1

是的,同时使用它们并不是一个坏主意。如果可以在客户端捕获到简单的用户输入错误,则在发送数据和调试服务器之前,先告诉用户这些错误是有意义的。例如,如果用户在“电子邮件”字段中输入的内容看起来不像电子邮件地址,或者在密码字段中输入的字符串长度仅为5个字符,而您知道自己的网站要求密码长度至少为6个字符,那么您应该在向服务器发送任何内容之前告诉用户。

同样重要的是,还要在服务器上复制完全相同的验证,这有两个原因:1)如果用户禁用了Java脚本怎么办?

2)用户恶意尝试绕过您的客户端验证,这确实很容易。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.