sql >> Databasteknik >  >> RDS >> Sqlserver

SqlParameter tillåter inte Tabellnamn - andra alternativ utan sql-injektionsattack?

Gå till en vit lista. Det kan bara finnas en fast uppsättning möjliga korrekta värden för tabellnamnet i alla fall - åtminstone, så jag hoppas.

Om du inte har en vit lista med tabellnamn kan du börja med en vitlista med tecken - Om du begränsar det till A-Z, a-z och 0-9 (inga skiljetecken alls) så borde det ta bort mycket av bekymmer. (Det betyder naturligtvis att du inte stöder tabeller med udda namn... vi känner inte riktigt till dina krav här.)

Men nej, du kan inte använda parametrar för varken tabell- eller kolumnnamn - bara värden. Det är vanligtvis fallet i databaser; Jag minns inte att jag såg en som gjorde stödparametrar för det. (Jag vågar påstå att det finns några, såklart...)



  1. '0000-00-00 00:00:00' kan inte representeras som java.sql.Timestamp error

  2. Hur man får MySQL-tabellens primärnyckel att automatiskt öka med något prefix

  3. Bästa sättet att få PK Guid av insatt rad

  4. IRI-Windocks Test Database Repository