Schutz Ihrer C# -Anwendung vor SQL -Injektionsangriffen
SQL -Injektion bleibt eine kritische Sicherheitsbedrohung. Dieser Artikel beschreibt effektive Strategien zum Schutz Ihrer C# -Anwendungen vor dieser Sicherheitsanfälligkeit.
Parametrisierte Abfragen: Der Schlüssel zur Prävention
Die robusteste Verteidigung gegen die SQL -Injektion ist die Verwendung parametrisierter Abfragen. Die SqlCommand
-Klassungen und ihre Parametersammlung handeln Dateneinrichtung automatisch und beseitigen das Risiko eines manuellen Fehlers und der Anfälligkeit.
Illustratives Beispiel:
Der folgende Code -Snippet zeigt die Verwendung von Parametern in einer C# -Anwendung:
<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>
Dieses Beispiel verwendet Parameter sowohl für customerID
als auch für demoXml
, wodurch die SQL -Injektionsanfälligkeiten verhindert werden, die mit der manuellen Konstruktion von SQL -Abfragen inhärent sind. Diese Methode sorgt für Datenintegrität und Anwendungssicherheit.
Das obige ist der detaillierte Inhalt vonWie kann ich SQL-Injection in meiner C#-Anwendung verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!