Wartości w selectionArgs
parametry nie muszą mieć znaczenia i nie mogą zostać ominięty, ponieważ znaki ucieczki znalazłyby się w bazie danych.
Veracode widzi trzy różne przypadki kodu SQL:
- wartości, których nie można dane wejściowe użytkownika (takie jak literały ciągów w kodzie źródłowym);
- wartości, które są dane wejściowe użytkownika (ponieważ pochodzą bezpośrednio z np. jakiegoś pola edycyjnego);
- wartości, które mogą być dane wejściowe użytkownika, ponieważ narzędzie nie może określić źródła.
Ze względów marketingowych płatne narzędzia mają tendencję do zwiększania liczby problemów tak bardzo, jak to możliwe. Tak więc Veracode zgłasza wszystkie przypadki trzeciego przypadku jako problemy.
W takim przypadku Veracode nie wie, gdzie selection
pochodzi, więc narzeka. Jeśli ta wartość jest tworzona przez twój program i nigdy nie zawiera żadnych danych wejściowych użytkownika (tj. wszystkie wartości wprowadzane przez użytkownika są przenoszone do ?
parametrów), to jest to fałszywy alarm i musisz powiedzieć Veracode, aby się zamknął.