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

SqlParameter non consente il nome della tabella - altre opzioni senza attacco sql injection?

Vai per una lista bianca. Può esserci solo un insieme fisso di possibile valori corretti comunque per il nome della tabella, almeno, quindi spero.

Se non hai una lista bianca di nomi di tabelle, puoi iniziare con una lista bianca di caratteri - se lo limiti a A-Z, a-z e 0-9 (nessuna punteggiatura), questo dovrebbe rimuovere gran parte della preoccupazione. (Ovviamente ciò significa che non supporti le tabelle con nomi strani... non conosciamo davvero le tue esigenze qui.)

Ma no, non puoi usare parametri per nomi di tabelle o colonne, solo valori. Questo è in genere il caso nei database; Non ricordo di averne visto uno che facesse parametri di supporto per questo. (Oserei dire che ce ne sono, ovviamente...)