Heim > Datenbank > MySQL-Tutorial > Können Tabellennamen in .NET/SQL für sauberen und sicheren Code parametrisiert werden?

Können Tabellennamen in .NET/SQL für sauberen und sicheren Code parametrisiert werden?

Patricia Arquette
Freigeben: 2024-12-30 08:59:18
Original
865 Leute haben es durchsucht

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

Tabellennamen in SQL parametrisieren?

Frage:

Ist es möglich, eine Tabelle zu übergeben? Namen als Parameter in .NET/SQL? Das Endziel besteht darin, die Sauberkeit zu verbessern und unordentlichen Code zu vermeiden, ohne die Sicherheit zu beeinträchtigen.

Antwort:

Die direkte Parametrisierung von Tabellennamen wird nicht unterstützt. Sie können dies jedoch indirekt mit sp_ExecuteSQL erreichen:

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);
    }
}
Nach dem Login kopieren

Alternativ können Sie die (parametrisierte) SQL-Anweisung in C# erstellen, den Tabellennamen anhängen und als Befehl ausführen:

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();
    ...
}
Nach dem Login kopieren

Denken Sie daran, die Tabellennamen auf die Whitelist zu setzen, um potenzielle Sicherheitslücken zu vermeiden.

Das obige ist der detaillierte Inhalt vonKönnen Tabellennamen in .NET/SQL für sauberen und sicheren Code parametrisiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage