Checkmarx обвиняет мой код в том, что он уязвим для Stored XSS.
Это оправдание:
Индекс приложения встраивает ненадежные данные в сгенерированные выходные данные с помощью addCodigo в строке 653 файла \Controllers\InfoApontamentoController.cs. Эти ненадежные данные встраиваются прямо в выходные данные без надлежащей очистки или кодирования, что позволяет злоумышленнику внедрить вредоносный код в выходные данные.
Злоумышленник сможет изменить возвращенную веб-страницу, заранее сохранив вредоносные данные в хранилище данных. Измененные данные злоумышленника затем считываются из базы данных методом Buscar с параметром Where
Мой код в методе Index:
//_codigoOperacionaisService.ObterAtivos() comes from repository
ViewBag.addCodigo = new SelectList(_codigoOperacionaisService.ObterAtivos(), "Id", "Codigo", "Descricao");
Мой код веб-страницы:
@Html.DropDownList("Id", ViewBag.addCodigoas SelectList, "Select One", new { @class = "form-control", @id = "selectEscala" })
Мой код репозитория:
public IEnumerable<CodigosDeOperacao> ObterAtivos()
{
return Buscar(c => c.Ativo && !c.Excluido).OrderBy(c => c.Codigo);
}
public virtual IEnumerable<TEntity> Buscar(Expression<Func<TEntity, bool>> predicate)
{
return Dbset.Where(predicate);
}
Если есть уязвимость, как я могу ее устранить или как проверить, что она перестает указываться как уязвимая?
Я считаю, что его не существует, потому что я использую помощников и бритву, какие-нибудь советы, как я могу пройти сканирование checkmarx?