Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya dapat mengelakkan kelemahan suntikan SQL dalam aplikasi C# saya?
Memperbaiki C# Aplikasi Terhadap SQL Suntikan Serangan Keselamatan data adalah kritikal dalam pembangunan aplikasi, dan suntikan SQL tetap menjadi kelemahan utama. Panduan ini menggariskan kaedah yang terbukti untuk melindungi aplikasi C# anda dari serangan ini.
Langkah asas adalah pengesahan input yang ketat. Menggunakan ungkapan biasa atau fungsi C# asli, anda boleh menguatkuasakan format input yang ketat. Sebagai contoh, medan e -mel boleh dihadkan kepada struktur "@domain.com". Ini menghalang watak -watak yang berpotensi berbahaya daripada menyusupkan pertanyaan SQL.
Strategi yang lebih mantap melibatkan pertanyaan parameter dan kelas
. Teknik ini dengan bersih memisahkan input pengguna dari pernyataan SQL itu sendiri, meninggalkan pengendalian jenis dan penapisan ke enjin pangkalan data. objek dicipta, nilai yang diberikan, dan kemudian diintegrasikan ke dalam pertanyaan. SqlCommand
SqlParameter
Contoh ilustrasi:
Pertanyaan parameternya dengan ketara mengurangkan risiko suntikan SQL. Pangkalan data merawat parameter sebagai data, bukan kod yang boleh dilaksanakan, menghapuskan keperluan sanitisasi manual dan menawarkan perlindungan yang kuat terhadap input berniat jahat.
<code class="language-csharp">using System.Data; using System.Data.SqlClient; private static void UpdateDemographics(int 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(); int rowsAffected = command.ExecuteNonQuery(); Console.WriteLine("RowsAffected: {0}", rowsAffected); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }</code>
Atas ialah kandungan terperinci Bagaimanakah saya dapat mengelakkan kelemahan suntikan SQL dalam aplikasi C# saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!