2016-11-30 25 views
0

Я получаю CSRF-вопрос при сканировании с помощью HP.Вопрос CSRF в Form.method (asp.net SPA)

jQuery.fn.downloadContentUsingServerEcho = function (fileName, contentType, contentEncoding, content) { 
     //// test 
     //$.ajax({ 
     // type: 'POST', 
     // url: 'download/' + fileName, 
     // contentType: 'application/json; charset=utf-8', 
     // data: JSON.stringify({ contentType: contentType, contentEncoding: contentEncoding, content: content }) 
     //}); 

     var form = document.createElement('form'); 
     form.id = 'downloadForm'; 
     form.method = 'post'; 
     form.target = 'downloadTarget'; 
     form.action = 'download/' + fileName; 

     var data = { 
      contentType: contentType, 
      contentEncoding: contentEncoding, 
      content: content 
     }; 

     for (var propName in data) { 
      if (!data.hasOwnProperty(propName)) { continue; } 
      var propValue = data[propName]; 
      var input = document.createElement('textarea'); 
      input.name = propName; 
      input.value = propValue; 
      form.appendChild(input); 
     } 

     document.body.appendChild(form); 
     form.submit(); 

     document.body.removeChild(form); 
    }; 

Я получаю в этой форме.method = 'post';

Цените свою помощь, чтобы исправить эту проблему.

Спасибо,

Б.К.

+0

[прочитайте и примените] (http://meta.stackoverflow.com/questions/251361/how-do-i-format-my-code-blocks). –

ответ

0

Если вы спрашиваете, как вы предотвратить против CSRF атак, OWASP имеет некоторую хорошую информацию о нем.

OWASP - Cross Site Request Forgery (CSRF)

Примечание: Кроме того, трудно читать то, что вы пытаетесь сделать в вашем коде, вы должны отформатировать его, чтобы мы могли видеть, что вы пытаетесь достичь.

+0

Привет @SBurris .. Я отформатировал код. Я проверил CSRF, но я не могу это решить. – bkr

0

Я не совсем понимаю, в чем проблема. Если HP fortify говорит, что вы не используете токен CSRF для защиты своего вызова AJAX, вам необходимо сгенерировать токен и передать его на сервер.

Для реализации в ASP.NET Microsoft дает хороший учебник по этому вопросу: https://www.asp.net/mvc/overview/security/xsrfcsrf-prevention-in-aspnet-mvc-and-web-pages

Для автоматического добавление маркеров CSRF для всех АЯКС почтовых звонков, вы можете просто добавить предфильтр. include antiforgerytoken in ajax post ASP.NET MVC

Примечание. Некоторые фреймворки, такие как Telerik, требуют, чтобы токен CSRF находился в options.data, а не только в заголовке.