Værdier i selectionArgs
parametre behøver ikke escapes, og de må ikke være escaped, fordi escape-tegnene ville ende i databasen.
Der er tre forskellige tilfælde af SQL-kode set af Veracode:
- værdier, der ikke kan være brugerinput (såsom strenge bogstaver i kildekoden);
- værdier, der er brugerinput (fordi det kommer direkte fra, f.eks. en redigeringsboks);
- værdier, der kan være brugerinput, fordi værktøjet ikke kan bestemme kilden.
Af markedsføringsmæssige årsager har betalte værktøjer en tendens til at puste problemet op så meget som muligt. Så Veracode rapporterer alle tilfælde af den tredje sag som problemer.
I dette tilfælde ved Veracode ikke hvor selection
er kommer fra, så det brokker sig. Hvis denne værdi er konstrueret af dit program og aldrig indeholder brugerinput (dvs. alle brugerinputværdier flyttes til ?
parametre), så er dette en falsk positiv, og du skal bede Veracode om at holde kæft.