checkmarx Client_Reflected_File_Download

Checkmarx обнаружил уязвимость в коде: Междоменный jsonp вызов ajax не XSS безопасен. Предложение дается следующим образом: явное имя файла не определено для заголовка Content-Disposition. Атрибут имени файла необходим для того, чтобы браузер не принял ресурс за исполняемый файл и не загрузил, возможно, вредоносный файл».

Код работает нормально, но инструмент безопасности определил это.

$.ajax({
 url: "https://www.example.com?format=rich&client=aem_frontend",
 dataType: "jsonp",
 data: "&q=" + request.term,
 success: function(data) {
  $('.searchPanel').css('display', 'none');
  if (data.results.length > 0) {
   response($.map(data.results, function(item) {
    return {
     label: item.name
    }
   }));
  } else {
   $('.ui-autocomplete ').css('display', 'none');
   $('.searchPanel').css('display', 'block');
   $('.searchPanel').css('display', 'block');
   // $('#zero-result').removeClass("noDisplay").css('display','block');
   //$('#err_text').text("Whoops! We couldn’t find any matches for "+request.term);
  }

 },
 error: function(data) {
  alert("inside failure" + data.status + ' ' + data.statusText);
 }
});

Как исправить эту уязвимость?


person Vaibhav Kaulkar    schedule 15.10.2018    source источник
comment
Добро пожаловать в СО. Вы, кажется, забыли задать вопрос.   -  person Niall Cosgrove    schedule 15.10.2018
comment
Я думаю, что Cx просто сообщает вам, что ваш запрос AJAX не только XSS Safe. После проверки запроса в CX-запросе, это относится к средней степени опасности в категории TypeScript и CWE-425. IMHO проблема, похоже, связана с запросом que.term, который может заставить вас перейти на URL-адрес, которому вы не доверяете. Попробуйте удалить этот код и отправить его обратно на сканер.   -  person SPoint    schedule 18.10.2018


Ответы (1)


В запросе Jquery Ajax вы можете определить в нем заголовок, например, приведенный ниже.

$.ajax({
    url: "https://www.example.com?format=rich&client=aem_frontend",



    headers: {
        'Content-Type': 'application/json'
    },



    dataType: "jsonp",
    data: "&q=" + request.term,
    success: function(data) {
        $('.searchPanel').css('display', 'none');
        if (data.results.length > 0) {
            response($.map(data.results, function(item) {
                return {
                    label: item.name
                }
            }));
        }
        else {
            $('.ui-autocomplete ').css('display', 'none');
            $('.searchPanel').css('display', 'block');
            $('.searchPanel').css('display', 'block');
            // $('#zero-result').removeClass("noDisplay").css('display','block');
            //$('#err_text').text("Whoops! We couldn’t find any matches for "+request.term);
        }

    },
    error: function(data) {
        alert("inside failure" + data.status + ' ' + data.statusText);
    }
});
person sandeep sangwan    schedule 14.10.2020