Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah perintah SQL parameterized menghalang suntikan SQL dalam aplikasi C#?
Mengamankan aplikasi C# anda dari suntikan SQL
Membangunkan aplikasi C# yang mantap yang berinteraksi dengan pangkalan data SQL memerlukan pertahanan yang kuat terhadap kelemahan suntikan SQL. Artikel ini menunjukkan bagaimana perintah SQL parameterized menawarkan penyelesaian yang sangat berkesan.pertanyaan parameter, menggunakan kelas
dan koleksi parameternya, adalah asas untuk menghalang suntikan SQL. Parameter ini mengendalikan tugas penting untuk mengesahkan dan mengodkan input pengguna, dengan itu meneutralkan ancaman. SqlCommand
<code class="language-csharp">private static void UpdateDemographics(Int32 customerID, string demoXml, string connectionString) { 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; 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>Coretan kod ini mempamerkan penggunaan koleksi
untuk memberikan nilai dengan selamat kepada parameter Parameters
dan @ID
. Dengan menggunakan parameter, data yang dibekalkan pengguna dianggap sebagai data, bukan sebagai kod yang boleh dilaksanakan, menghapuskan risiko suntikan SQL. @demographics
Atas ialah kandungan terperinci Bagaimanakah perintah SQL parameterized menghalang suntikan SQL dalam aplikasi C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!