14-16 Mar 2026
Voltar ao Plano

Adicionar whitelist de campos no sorting Dynamic LINQ (SEC2-03)

ACT-5.2.1
2a Pass. CurtoAltaEsforco: MComplexidade: MediaParalelizavel
Por que e urgente

Injection via Dynamic LINQ em 6 repositorios/servicos diferentes

Risco de nao fazer

Vazamento de dados por ordenacao por colunas nao intencionadas, potencial DoS via queries caras

Modulos Impactados

EfCoreOfertaRepository.csEfCoreRotaRepository.csEfCoreGalileuCredentialRepository.csNotificationAppService.csEfCoreOfertaRecordRepository.cs

Passos de Implementacao

  1. 1Criar um metodo utilitario `SortingValidator.Validate(string sorting, string[] allowedFields)` em `Application.Contracts` ou `Application`
  2. 2Definir a whitelist de campos permitidos para cada entidade (ex: `Oferta`: `Data`, `Status`, `Origem`, `Destino`, `Valor`)
  3. 3Chamar o validador antes de cada uso de `OrderBy(sorting)` nos repositorios
  4. 4Retornar `BadRequest` ou usar o sorting default se o campo nao for permitido

Achados Relacionados