2010-11-10 56 views
1

我有一个表单,它在提交时检查CSRF令牌并验证它。当我用ajax提交表单时,我试图获得相同的安全性。但是,ajax请求不会提交表单本身,它只是通过发送请求将数据发送到url。如果ajax请求提交了此CSRF令牌和请求,会发生什么情况。在服务器上,我将检查CSRF令牌。这是否会以任何方式危害我的表单安全?这是否会导致ajax提交方式被其他人以某种方式利用?发送ajax请求的CRSF令牌是否削弱了它的CRSF保护

回答

0

发布到服务器并包含令牌应该与通过表单一样安全;这是做同样事情的另一种方式。以下是我正在处理的应用程序的一个示例:

 var getCookie = function(name) { 
      var r = document.cookie.match("\\b" + name + "=([^;]*)\\b"); 
      return r ? r[1] : undefined; 
     }; 

     var args = { 
      _xsrf : getCookie("_xsrf"), 
      // other args added 
     }; 

     $.ajax({ 
      url : "/ajaxhandler", 
      data : args, 
      type : "post", 
      dataType : "json", 
      // .. the rest as usual 
     });