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

Comment SQLParameter empêche-t-il l'injection SQL ?

En gros, lorsque vous exécutez une SQLCommand en utilisant SQLParameters , les paramètres ne sont jamais insérés directement dans l'instruction. Au lieu de cela, une procédure stockée système appelée sp_executesql est appelée et reçoit la chaîne SQL et le tableau de paramètres.

Lorsqu'ils sont utilisés tels quels, les paramètres sont isolés et traités comme des données, au lieu de devoir être extraits de l'instruction (et donc éventuellement de la modifier), de sorte que ce que les paramètres contiennent ne peut jamais être "exécuté". Vous obtiendrez simplement une grosse erreur indiquant que la valeur du paramètre est invalide d'une manière ou d'une autre.