SQLite
 sql >> Base de données >  >> RDS >> SQLite

Neutralisation incorrecte des éléments spéciaux utilisés dans une commande SQL

Valeurs dans selectionArgs les paramètres n'ont pas besoin d'être échappés, et ils ne doivent pas être échappé car les caractères d'échappement se retrouveraient dans la base de données.

Il existe trois cas différents de code SQL vu par Veracode :

  • des valeurs qui ne peuvent pas être l'entrée de l'utilisateur (telle que les littéraux de chaîne dans le code source) ;
  • des valeurs qui sont l'entrée de l'utilisateur (parce qu'elle provient directement, par exemple, d'une zone d'édition );
  • valeurs qui pourraient être l'entrée de l'utilisateur, car l'outil ne peut pas déterminer la source.

Pour des raisons de marketing, les outils payants ont tendance à gonfler le nombre de problèmes autant que possible. Ainsi, Veracode signale toutes les instances du troisième cas comme des problèmes.

Dans ce cas, Veracode ne sait pas où selection vient, donc il se plaint. Si cette valeur est construite par votre programme et ne contient jamais d'entrée utilisateur (c'est-à-dire que toutes les valeurs d'entrée utilisateur sont déplacées vers ? paramètres), alors c'est un faux positif, et vous devez dire à Veracode de se taire.