Использует ли jQuery.html () уязвимость, когда я контролирую результат - PullRequest
0 голосов
/ 05 мая 2018

Так что в основном у меня есть вызов ajax, который обращается к методу, который возвращает частичное представление, и для отображения данных я использую jQuery.html ().

Мы выполняем наш код с помощью инструмента безопасности veracode, и это повышает уязвимость XSS.

Вот jquery:

 $.ajax({
            url: "ReturnTransNoInformation",
            data: { __RequestVerificationToken: ReturnAntiForgeryToken(), TransNo: $("[data-trans-no]").val() },
            type: "POST",
            beforeSend: function () {
                TransNoInfoAjaxBegin("[data-view-trans-no-container]");
            },
            success: function (data) {
                if (data.Success === false) {
                    if (data.ErrorMessage !== undefined && data.ErrorMessage !== null && data.ErrorMessage !== "") {
                        Error(data.ErrorMessage);
                    }
                    else {
                        Error("Something went wrong while loading the TransNo info, please refresh the page and try again.")
                    }
                    $("[data-transno-partial]").html(null); //Potential XSS
                }
                else {
                    $("[data-transno-partial]").html(data); //Potential XSS
                }
            },
            error: function () {
                Error("Something went wrong while loading the TransNo info, please refresh the page and try again.")
            },
            complete: function () {
                AjaxComplete("[data-view-trans-no-container]");
            }
        });

Мой код C #:

        [AuthorizeUsers(new UserLevel[] { UserLevel.SubRepMaster, UserLevel.Regional })]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> ReturnTransNoInformation(string transNo) {
            if (string.IsNullOrWhiteSpace(transNo)) return Json(new { Success = false, ErrorMessage = "Error: TransNo cannot be empty" });

            var info = await _iAccountingManager.ReturnTransNoInfoAsync(transNo, SessionInfo.CIDs);

            if (info == null) return Json(new { Success = false, ErrorMessage = "Error: TransNo does not exist" });

            return PartialView("~/Views/Accounting/Partials/_TransNoInfo.cshtml", new TransNoInfoViewModel(info));
        }

Мое частичное представление полностью контролируется мной без JS в частичном представлении. Это фактическая уязвимость XSS?

1 Ответ

0 голосов
/ 10 мая 2018

Если вы контролируете отображаемый код, то нет. XSS использует злонамеренный сторонний код, который вводится на ваш сайт.

Если нет сторонних организаций, которые могут изменить ввод на желаемый, то нет проблем с XSS на вашем сайте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...