Maison >base de données >tutoriel mysql >Comment puis-je paramétrer les noms de colonnes dans une commande SQL C# ?

Comment puis-je paramétrer les noms de colonnes dans une commande SQL C# ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-23 08:27:23503parcourir

How Can I Parameterize Column Names in a C# SqlCommand?

Paramétrage des noms de colonnes dans SqlCommand

Les requêtes paramétrées sont essentielles pour prévenir les attaques par injection SQL et garantir la sécurité des opérations de votre base de données. Cependant, C# SqlCommand pose un défi particulier lorsqu'il s'agit de paramétrer les noms de colonnes. La syntaxe présentée dans la question d'origine entraîne une erreur, car SqlCommand ne prend pas en charge nativement le paramétrage des noms de colonnes.

Pour résoudre ce problème, il est recommandé de construire la requête de manière dynamique au moment de l'exécution. Cela implique de concaténer le nom de la colonne avec le reste de la requête. Bien que cela puisse sembler gênant, il est crucial d'atténuer les risques de sécurité :

// IMPORTANT: Ensure "slot" is validated against a whitelist to prevent injection attacks

SqlCommand command = new SqlCommand("SELECT [" + slot +
           "] FROM Users WHERE name=@name; ")
prikaz.Parameters.AddWithValue("name", name);

En construisant dynamiquement la requête, vous pouvez paramétrer efficacement les noms de colonnes. N'oubliez pas de donner la priorité à la sécurité en mettant sur liste blanche ou en validant toutes les entrées des utilisateurs pour éviter les vulnérabilités potentielles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn