Ajax提交表单安全性?

时间:2011-10-04 10:50:58

标签: jquery ajax security

假设我有一个表单,我想阻止用户在验证之前提交表单, 所以我在onsubmit中使用event.preventDefault():

// In my validation.js

$('#myForm').bind('submit', function(event){
   event.preventDefault();
   // I do the client-side validation here
});

您可以在此处看到,用户可以在preventDefault()行之后编辑validaiton代码。他们通过验证(仅限客户端)

使用客户端验证制作表单'ajax'的更安全的方法是什么? 我也有服务器端验证,但我只是想问一下如何让客户端更难破解和更安全?

3 个答案:

答案 0 :(得分:1)

它永远不会“更可靠”或“更安全”。可以禁止JS,并且客户端不会进行验证。

答案 1 :(得分:0)

您无法使其成为完全安全的客户端,但您可以提高安全性。您可以做的其他事情包括:

  • 你不能有一个提交按钮,只是一个普通的按钮,只允许通过在JS中提交单击按钮来启用JS的表单提交。
  • 你可以缩小/限制JS使编辑更难。
  • 您可以与服务器执行预提交身份验证检查 请求密钥在短时间内有效,然后是 用表单提交,以便服务器端可以验证 提交更有可能来自您的有效JavaScript。

答案 2 :(得分:0)

您应该在服务器上复制所有客户端验证。 如果使用.NET,更好的解决方案是使用Dataannotaion来使用Required,Range,Regularexpression属性来装饰您的实体类。这些属性可以使用jquery.unobtrusive.validate验证客户端,然后使用ModelState.IsValid()

在服务器端验证