2010-11-10 2 views
1

У меня есть форма, которая при отправке проверяет токен CSRF и проверяет его. Я пытаюсь иметь такую ​​же безопасность, когда я отправляю форму с помощью ajax. Но запрос ajax не отправляет форму самостоятельно, она просто отправляет данные в URL с запросом на отправку. Что произойдет, если запрос ajax отправит этот токен CSRF с запросом. На сервере я проверю, есть ли токен CSRF. Является ли это каким-либо образом компрометирует мою защиту формы? Может ли это привести к тому, что способ подачи ajax будет каким-то образом использоваться другими?Отправляет ли токен CRSF с ajax-запросом ослабить его защиту CRSF

ответ

0

POST на сервер и в том числе токен должен быть столь же безопасным, как и его использование через форму; это просто еще один способ сделать то же самое. Вот пример из приложения, над которым я работаю:

 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 
     }); 
0

Да, это должно быть безопасным. Пока JavaScript, работающий на другом домене, не может прочитать токен. Это может произойти, например, это JSON abuse used against gmail.