Хранимая атака между сайтами (Json), отражение всех клиентов XSS (Kendo DataSourceRequest) - PullRequest
0 голосов
/ 18 декабря 2018

Мой проект проверяется контрольной пометкой на уязвимые.И сканер делает два уязвимых в одном методе.Одним из них является сохраненный межсайтовый скриптинг, а вторым - «Отраженные клиенты XSS».Мой код, как показано ниже:

    public ActionResult kol_pas_Read([DataSourceRequest] DataSourceRequest request, Guid kod) 
    {                   
        var data = db.kol_pas.Where(o => o.technics_zayavka_uid == kod);
        var ot = db.spis_otd;
        var items = from item in data
            join spisOtd in ot on item.spis_otd_id equals spisOtd.uid
                    select 
                    new {
                    Id = item.uid,
                        item.uid, 
                        item.No, 
                        item.nazalogia,
                         item.kol, 
                         item.kol2,
                          item.kol3, 
                          item.spis_otd_id, 
                          item.god, 
                          item.technics_zayavka_uid,
                           OtdName = spisOtd.rus_name
                    };                      
        return Json(items.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
    }    

И код HtmlKendo:

@ (Html.Kendo (). Grid (). Имя ("kol_pas" + Model [0])
.Columns (c => {
c.Bound (d => d.OtdName) .Title (Messages.naimiotdel) .Width (300) .ClientFooterTemplate (Messages.Vсего + "# = count #");
c.Bound (d => d.kol) .Title (Messages.Количествопациентов1) .Width (100); c.Bound (d => d.kol2) .Title (Messages.Количествопациентов2) .Width (100);c.Bound (d => d.kol3) .Title (Messages.Количествопациентов3) .Width (100);
if (! bool.Parse ((string) Model [1])) {c.Command (command => {command.Edit (); command.Destroy ();}). Width (160);}}). Панель инструментов (панель инструментов => {if (! bool.Parse ((string) Model [1])) {панель инструментов.Create ();}}) .Editable (editable => {if (! Bool.Parse ((string) Model [1])) {editable.Mode (GridEditMode.PopUp);}}) .Sortable () .Scrollable() .Selectable (selectable => selectable.Mode (GridSelectionMode.Single)) .DataSource (dataSource => dataSource .Ajax () .PageSize (100) .Aggregates (aggregates => aggregates.Add (p => p.OtdName) .Count ()) .Model (model => {model.Id (p => p.Id);}) .Read (read => read.Action ("kol_pas_Read", "Grid"). Data ("TechnicId"))
.Events (events => events.Error ("kol_pas_Error"))))

И сканер делает две ошибки, как на картинке в ссылках: https://imgur.com/a/Ir1lxIf Как можно решить эту проблему?

...