sql >> Databasteknik >  >> RDS >> SQLite

Felaktig neutralisering av specialelement som används i ett SQL-kommando

Värden i selectionArgs parametrar behöver inte escapes, och de får inte escaped eftersom escape-tecknen skulle hamna i databasen.

Det finns tre olika fall av SQL-kod som ses av Veracode:

  • värden som inte kan vara användarinmatning (som strängliteraler i källkoden);
  • värden som är användarinmatning (eftersom den kommer direkt från, t.ex. någon redigeringsruta);
  • värden som kan vara användarinmatning, eftersom verktyget inte kan fastställa källan.

Av marknadsföringsskäl tenderar betalda verktyg att blåsa upp problemsiffrorna så mycket som möjligt. Så Veracode rapporterar alla instanser av det tredje fallet som problem.

I det här fallet vet Veracode inte var selection kommer från, så det klagar. Om det värdet är konstruerat av ditt program och aldrig innehåller någon användarinmatning (dvs alla användarinmatade värden flyttas till ? parametrar), är detta en falsk positiv, och du måste be Veracode att hålla käften.




  1. Hur man kör Raw SQL i SQLAlchemy

  2. MySQL vs PostgreSQL för webbapplikationer

  3. VÄLJ FÖR UPPDATERING med SQL Server

  4. PostgreSQL:Skapa index för boolesk kolumn