ASP.Net验证控制JavaScript的优点

时间:2013-10-23 06:26:08

标签: javascript asp.net validation

有人可以解释使用ASP.Net验证控件和javascript进行客户端验证之间的区别吗?我的工作是分析开发人员创建的代码/我已经阅读了一些文章,但实时开发人员更喜欢使用javascript而不是使用验证控件。因此,我想了解使用javascript代替验证控件的必要性。

2 个答案:

答案 0 :(得分:3)

不同之处在于ASP.NET客户端控件在服务器上执行验证,这是您应该始终执行的操作。客户端javascript验证是可选的。它允许更灵敏的UI,减少对服务器的往返,但它不提供任何级别的安全性,因为用户可以简单地在浏览器中关闭javascript。除了服务器端之外,ASP.NET控件还可以生成客户端验证。

答案 1 :(得分:2)

客户端

您希望首先在客户端验证输入,因为您可以向普通用户提供更好的反馈。例如,如果他们输入无效的电子邮件地址并移至下一个字段,则可以立即显示错误消息。这样,用户可以在提交表单

之前更正之前的每个字段。

如果您只在服务器上进行验证,则必须提交表单,收到错误消息,并尝试搜索问题。

(这种痛苦可以通过制作“粘性”形式来缓解,其中服务器记住每个字段中输入的内容并将其填回,但客户端验证仍然更快。)

ASP.Net控制验证(服务器端)

您希望在服务器端进行验证,因为您可以防范恶意用户,他们可以轻松绕过您的JavaScript并向服务器提交危险输入。

信任您的UI非常危险。 他们不仅可以滥用您的用户界面,而且可能根本不使用您的用户界面,甚至是浏览器。如果用户手动编辑URL,或运行自己的Javascript,或使用其他工具调整HTTP请求,该怎么办?如果他们从curl发送自定义HTTP请求怎么办?例如?

不允许这样做不仅从安全的角度来说是天真的,而且也是非标准的:应该允许客户端以他们希望的任何方式发送HTTP,并且您应该正确响应。这包括验证。

服务器端验证对于兼容性也很重要 - 并非所有用户都启用了JavaScript。