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!