Редактирование сетки в пользовательском интерфейсе Kendo: всплывающая основная проблема xss, когда пользователь теряет фокус на текстовом поле - PullRequest
0 голосов
/ 19 марта 2020

Привет, у меня есть сетка с всплывающим окном редактирования. Все работает, как и ожидалось, пока пользователь не поместит скрипт в поля редактирования. По какой-то причине он теряет фокус. Он выполняет скрипт по какой-то причине. Я даже написал свою собственную пользовательскую проверку, которая удаляет это из поля, но когда валидатор возвращает, он выполняет текстовое поле с вредоносным скриптом

Я попытался удалить само значение из входных данных. Это не имеет значения, поскольку оно удерживает старое значение, когда попадает в кендо. . js _validate метод

  • нажмите на опцию редактирования в сетке
  • вставьте html тег, содержащий onload, который выполняет предупреждение в текстовое поле или область
  • clickOutside текстового поля

Обратите внимание, что я могу уловить это, если пользователь должен был щелкнуть, например, сохранить, но не если пользователь щелкает за пределами текстового поля

    if (input.is("[name='q']")) {
        var sanitizedValue = InputContainsUnSanitizeHtml(input[0].value);
        if (sanitizedValue === true) {
            input.attr("data-qtml-msg", "@(Strings.ValidQtml)");

            input[0].value = sanitizedValue;
            return false;
        }
        //var id = $("#Id").val();
        ////input[0].value = sanitizedValue;
        //var grid = $("#QtmlGrid").data("kendoGrid");
        //var previousName = grid.dataSource.get(id).Qtml;
        //previousName = sanitizedValue;
        //$("#QtmlGrid").data().kendoGrid.dataSource.filter().filters[0].value = name;

        return true;
    }
    return true;
}```
...