J'ai entendu dire que «tout le monde» utilise des requêtes SQL paramétrées pour se protéger contre les attaques par injection SQL sans avoir à valider chaque élément d'entrée utilisateur.
Comment est-ce que tu fais ça? Obtenez-vous cela automatiquement lorsque vous utilisez des procédures stockées?
Donc, je comprends que cela n'est pas paramétré:
cmdText = String.Format("SELECT foo FROM bar WHERE baz = '{0}'", fuz)
Serait-ce paramétré?
cmdText = String.Format("EXEC foo_from_baz '{0}'", fuz)
Ou dois-je faire quelque chose de plus complet comme celui-ci pour me protéger de l'injection SQL?
With command
.Parameters.Count = 1
.Parameters.Item(0).ParameterName = "@baz"
.Parameters.Item(0).Value = fuz
End With
Existe-t-il d'autres avantages à utiliser des requêtes paramétrées en plus des considérations de sécurité?
Mise à jour: Cet article génial était lié à l'une des références de questions de Grotok. http://www.sommarskog.se/dynamic_sql.html