Maison >base de données >tutoriel mysql >Comment puis-je empêcher l'injection SQL dans mon application C #?
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!