繁体   English   中英

ASP.Net验证控件优于JavaScript的优势

[英]Advantages of ASP.Net validation controls over JavaScript

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

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

客户端

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

如果仅在服务器上进行验证,则他们必须提交表单,获取错误消息,然后尝试找出问题所在。

(可以通过制作“粘性”表格来减轻这种痛苦,服务器可以在该表格中记住在每个字段中输入的内容并重新填写,但是客户端验证仍然更快。)

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

您希望在服务器端进行验证,因为您可以防止恶意用户的攻击该用户可以轻松绕过您的JavaScript并将危险的输入提交给服务器。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM