mirror of https://github.com/interlegis/sapl.git
Browse Source
Os parâmetros texto, rotulo, num_ta e ano_ta da busca de dispositivos eram interpolados diretamente na SQL bruta executada via Dispositivo.objects.raw(), sem nenhum escape (ano_ta nem sequer era citado entre aspas). Troca as interpolações por placeholders %s com params, deixando o driver do banco responsável pela escapagem. Além disso: - Renomeia a lista de palavras pesquisadas para texto_valores e monta os fragmentos '%s' repetidos via ['d.texto ~* %s'] * len(texto_valores), em vez de reatribuir a mesma variável texto ou usar uma comprehension com variável de loop não utilizada. - Adiciona sapl.compilacao.utils.valid_int e aplica a tipo_model, tipo_ta e ano_ta (colunas/PKs inteiras), rejeitando valores não numéricos com um erro claro em vez de deixar o filtro inválido seguir adiante. num_ta não é validado dessa forma porque ta.numero é CharField pesquisado via regex (~*), então aceitar valores não numéricos ali é esperado. Claude-Session: https://claude.ai/code/session_01RZAufy4JQKWAaDgfcQByyt Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>3.1.x
committed by
GitHub
2 changed files with 39 additions and 18 deletions
Loading…
Reference in new issue