Maison >base de données >tutoriel mysql >Comment puis-je empêcher l'injection SQL dans mon application C #?

Comment puis-je empêcher l'injection SQL dans mon application C #?

DDD
DDDoriginal
2025-01-25 10:17:09234parcourir

How Can I Prevent SQL Injection in My C# Application?

Sauvegarde de votre application C # à partir des attaques d'injection SQL

L'injection SQL reste une menace de sécurité critique. Cet article détaille des stratégies efficaces pour protéger vos applications C # de cette vulnérabilité.

Requêtes paramétrées: la clé de la prévention

La défense la plus robuste contre l'injection SQL consiste à utiliser des requêtes paramétrées. La classe SqlCommand et sa collecte de paramètres gèrent automatiquement la désinfection des données, éliminant le risque d'erreur manuelle et de vulnérabilité.

Exemple illustratif:

Le code d'extrait de code suivant présente l'utilisation de paramètres dans une application C #:

<code class="language-csharp">private static void UpdateDemographics(Int32 customerID,
    string demoXml, string connectionString)
{
    // Update store demographics stored in an XML column.
    string commandText = "UPDATE Sales.Store SET Demographics = @demographics "
        + "WHERE CustomerID = @ID;";

    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        SqlCommand command = new SqlCommand(commandText, connection);
        command.Parameters.Add("@ID", SqlDbType.Int);
        command.Parameters["@ID"].Value = customerID;

        // AddWithValue handles implicit XML string conversion by SQL Server.
        command.Parameters.AddWithValue("@demographics", demoXml);

        try
        {
            connection.Open();
            Int32 rowsAffected = command.ExecuteNonQuery();
            Console.WriteLine("RowsAffected: {0}", rowsAffected);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
}</code>

Cet exemple utilise des paramètres pour customerID et demoXml, empêchant les vulnérabilités d'injection SQL inhérentes à la construction manuelle des requêtes SQL. Cette méthode assure l'intégrité des données et la sécurité des applications.

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