【问题标题】:Validation controls in ASP.NET are run at server- or client-side?ASP.NET 中的验证控件是在服务器端还是客户端运行?
【发布时间】:2016-01-03 22:28:07
【问题描述】:

我正在创建一个 ASP.NET 应用程序,我想知道 ASP.NET 上的验证控件在哪里运行?在服务器上还是在客户端机器上?

我是否应该考虑改用 JavaScript 对我的项目执行简单的表单验证?

【问题讨论】:

  • 有些可能同时运行,但都应该在服务器端运行。您可以考虑使用 JavaScript 来改进用户体验,但任何实际验证都应在服务器端完成。永远不要隐含地信任来自客户端的数据。

标签: c# asp.net


【解决方案1】:

为什么不两者都做?出于安全目的,您绝对需要在后端代码(C#/ASP.NET)中进行用户输入验证,同时,如果他们在填写表单时获得实时验证(Angular/ JS)。

【讨论】:

    【解决方案2】:

    自 ASP.NET 2.0 以来的任何内容都将在页面上运行服务器端检查,以通过使用后面代码中 Form_Load 属性中的 .IsValid() 检查任何验证器控件(运行服务器端)来确保其有效.这个过程需要回发到服务器,这意味着如果他们错过了一些简单的事情,比如填写姓名字段,他们必须首先提交表单,这不是高性能而且有时成本很高。

    控件上有一个名为“EnableClientScript”的验证器属性,它将运行一个 javascript 函数来验证简单的事情,例如缺少字段信息,甚至是对电话号码或电子邮件地址等内容的 reg ex 检查。

    David 也是正确的,您仍然要验证此输入。最好的策略是针对任何无意或恶意的尝试进行防御性编码,尤其是在您拥有面向公众的网站时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-30
      • 2014-08-27
      • 1970-01-01
      • 2012-02-05
      • 2017-10-07
      • 2017-01-26
      • 2018-06-06
      相关资源
      最近更新 更多