ASP.NET的jQuery验证,安全问题

时间:2011-07-27 08:36:19

标签: asp.net validation jquery-validate

我想用jQuery验证替换asp.net表单验证,但不确定这是否安全。 ASP.NET验证使用客户端和服务器端验证来通过禁用客户端JS验证来防止黑客发布到服务器。 如果我将使用客户端jQuery验证,那么它很容易被攻陷,不是吗?也许我错过了什么?

5 个答案:

答案 0 :(得分:4)

您不应仅使用客户端验证。它很容易避免。人们通常使用客户端验证来获得用户体验。这样,表格不必做一个完整的帖子来捕捉错误。出于安全考虑,您希望进行服务器端验证。

答案 1 :(得分:1)

jQuery验证与客户端JS验证完全相同。 jQuery是javascript框架。

始终使用服务器端验证,如果您想改善用户体验,请包含客户端验证。

答案 2 :(得分:1)

即使您在客户端上验证数据,也应始终编写服务器端验证代码,否则您的站点将不安全且容易被黑客入侵。但是用于编写客户端验证的原因是为了避免服务器的往返,否则将需要验证数据。换句话说,如果用户输入了无效数据,那么在之前捕获错误会更有效且用户友好。 将数据发送到服务器,如果数据无效,您将不得不重建页面并维护页面状态,以便用户可以修复无效值。

答案 3 :(得分:1)

尝试使用asp.net AJAX加服务器控件验证器作为验证框架,原因如下:

  1. 它是安全的,因为您的验证在服务器端运行
  2. 它更容易实现,因为您不必在服务器和客户端(javascript)中编写相同的代码两次
  3. 服务器端代码比客户端代码
  4. 更容易维护
  5. 您的网站看起来会很敏感,但您必须注意如何减少每次部分回发中的数据传输。研究这个。
  6. 你与asp.net sintax绑在一起,你的开发者也会喜欢这个。你实际上不需要更多。
  7. 建议:

    • 焦点在每次部分回发时都会丢失:更新面板内提交的表单的DOM部分被替换,浏览器不会为用户设置焦点。因此,请确保将焦点放在适当的控件上,以确保用户使用TAB键击输入数据。
    • 如果要使用css自定义服务器验证程序控件的外观,请尝试继承主要验证程序:Custom,Regex和requiredField,以及您自己的类,它基本上设置和取消设置错误css类和每个服务器所需的消息往返(在渲染之前设置)。然后将这些自定义类映射到web.config中的框架类(使用tagmapping),因此您总是使用默认标记进行服务器端验证。你就是这两种世界中最好的。

答案 4 :(得分:0)

Jquery.validate.js

https://github.com/jzaefferer/jquery-validation

您可以将其设置为独立于您自己的客户端验证/而不是/或与之一起运行。