Valores em
selectionArgs
os parâmetros não precisam ser escapados e não devem ser escapado porque os caracteres de escape acabariam no banco de dados. Existem três casos diferentes de código SQL vistos pelo Veracode:
- valores que não podem ser entrada do usuário (como literais de string no código-fonte);
- valores que são entrada do usuário (porque vem diretamente de, por exemplo, alguma caixa de edição);
- valores que podem ser entrada do usuário, porque a ferramenta não pode determinar a origem.
Por razões de marketing, as ferramentas pagas tendem a inflar os números dos problemas o máximo possível. Portanto, o Veracode relata todas as instâncias do terceiro caso como problemas.
Neste caso, o Veracode não sabe onde
selection
vem, por isso reclama. Se esse valor é construído pelo seu programa e nunca contém nenhuma entrada do usuário (ou seja, todos os valores de entrada do usuário são movidos para ?
parâmetros), então este é um falso positivo e você deve dizer ao Veracode para calar a boca.