sql >> Database teknologi >  >> RDS >> Sqlserver

SqlParameter tillader ikke tabelnavn - andre muligheder uden sql-injektionsangreb?

Gå efter en hvid liste. Der kan kun være et fast sæt mulige korrekte værdier for tabelnavnet alligevel - i hvert fald, så håber jeg.

Hvis du ikke har en hvid liste over tabelnavne, kan du starte med en hvidliste med tegn - hvis du begrænser det til A-Z, a-z og 0-9 (ingen tegnsætning overhovedet), så burde det fjerne meget af bekymringen. (Det betyder selvfølgelig, at du ikke understøtter tabeller med ulige navne... vi kender ikke rigtig dine krav her.)

Men nej, du kan ikke bruge parametre til hverken tabel- eller kolonnenavne - kun værdier. Det er typisk tilfældet i databaser; Jeg kan ikke huske at have set en, som gjorde støtte parametre for det. (Jeg tør godt sige, at der er nogle, selvfølgelig...)



  1. SQL Server PIVOT måske?

  2. PostgreSQL-indeks bruges ikke til forespørgsel på IP-områder

  3. Hvordan overfører eller eksporterer du SQL Server 2005-data til Excel

  4. Sådan opdateres Oracle Clob ved hjælp af JDBC