sql >> Base de Datos >  >> RDS >> SQLite

Neutralización incorrecta de elementos especiales utilizados en un comando SQL

Valores en selectionArgs los parámetros no necesitan ser escapados, y ellos no deben escapar porque los caracteres de escape terminarían en la base de datos.

Hay tres casos diferentes de código SQL vistos por Veracode:

  • valores que no pueden ser entrada del usuario (como cadenas literales en el código fuente);
  • valores que son entrada del usuario (porque provienen directamente, por ejemplo, de algún cuadro de edición);
  • valores que podrían ser entrada del usuario, porque la herramienta no puede determinar la fuente.

Por razones de marketing, las herramientas pagas tienden a inflar los números problemáticos tanto como sea posible. Entonces Veracode informa todas las instancias del tercer caso como problemas.

En este caso, Veracode no sabe dónde selection viene, por lo que se queja. Si ese valor lo construye su programa y nunca contiene ninguna entrada del usuario (es decir, todos los valores de entrada del usuario se mueven a ? parámetros), entonces se trata de un falso positivo y debe decirle a Veracode que se calle.