Maison > base de données > tutoriel mysql > Les noms de tables peuvent-ils être paramétrés dans .NET/SQL pour un code propre et sécurisé ?

Les noms de tables peuvent-ils être paramétrés dans .NET/SQL pour un code propre et sécurisé ?

Patricia Arquette
Libérer: 2024-12-30 08:59:18
original
865 Les gens l'ont consulté

Can Table Names Be Parameterized in .NET/SQL for Clean and Secure Code?

Paramétrage des noms de table en SQL ?

Question :

Est-il possible de transmettre une table des noms comme paramètres dans .NET/SQL ? L'objectif final est d'améliorer la propreté et d'éviter le code compliqué sans compromettre la sécurité.

Réponse :

Le paramétrage direct des noms de table n'est pas pris en charge. Cependant, vous pouvez y parvenir indirectement en utilisant sp_ExecuteSQL :

SqlConnection conn = new SqlConnection("Your database connection string");
DataTable dt = new DataTable();

using (SqlCommand cmd = conn.CreateCommand())
{
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "sp_ExecuteSQL";

    cmd.Parameters.AddWithValue("@stmt","SELECT * FROM table");

    using (SqlDataAdapter da = new SqlDataAdapter(cmd))
    {
        da.Fill(dt);
    }
}
Copier après la connexion

Vous pouvez également construire l'instruction SQL (paramétrée) en C#, en ajoutant le nom de la table et l'exécuter en tant que commande :

var name = ...; //Determine table name dynamically here
var sql = $"SELECT * FROM {"table"}";
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
    cmd.Parameters.Add("", ...);
    var result = cmd.ExecuteReader();
    ...
}
Copier après la connexion

N'oubliez pas de mettre les noms de tables sur liste blanche pour éviter d'éventuelles vulnérabilités de sécurité.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal