Mengamankan C# Aplikasi dari SQL Suntikan Serangan
Suntikan SQL adalah ancaman keselamatan yang serius yang membolehkan penyerang memanipulasi pertanyaan pangkalan data, yang berpotensi membawa kepada pelanggaran data. Untuk mengurangkan risiko ini dalam aplikasi C# berinteraksi dengan pangkalan data SQL, menggunakan pertanyaan parameter dengan adalah yang paling utama. SqlCommand
, apabila digunakan dengan betul, menawarkan pertahanan yang kuat terhadap suntikan SQL. Koleksi parameternya secara automatik mengendalikan pengesahan dan penukaran jenis data, mengeluarkan keperluan untuk sanitisasi input manual, sumber kerentanan yang sama. SqlCommand
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).Value = customerID; command.Parameters.AddWithValue("@demographics", demoXml); // Implicit XML conversion by SQL Server try { connection.Open(); Int32 rowsAffected = command.ExecuteNonQuery(); Console.WriteLine($"RowsAffected: {rowsAffected}"); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }
dan @ID
dalam @demographics
. Nilai diluluskan sebagai parameter, menghalang suntikan SQL langsung. SQL Server mengendalikan penukaran tersirat dari rentetan ke XML. SqlCommand
, pemaju menghapuskan risiko yang berkaitan dengan input pengguna secara manual. Pendekatan ini menyediakan kaedah yang mantap dan cekap untuk melindungi aplikasi C# dari kelemahan suntikan SQL. Ini memastikan integriti data dan melindungi daripada akses yang tidak dibenarkan. SqlCommand
Atas ialah kandungan terperinci Bagaimanakah SQLCommand dalam C# mencegah serangan suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!