Pertanyaan Parameterized: Pertahanan yang teguh terhadap suntikan SQL
Suntikan SQL kekal sebagai kelemahan yang ketara dalam aplikasi web. Pertanyaan Parameterized menawarkan penyelesaian yang kuat dan berkesan. Mari kita periksa senario untuk menggambarkan kepentingan mereka.Pertimbangkan kedua -dua contoh pertanyaan yang berbeza:
Contoh 1: Pertanyaan selamat menggunakan parameter
<code class="language-csharp">SqlCommand cmd = new SqlCommand("INSERT INTO dbo.Cars VALUES (@TagNbr)", conn); cmd.Parameters.Add("@TagNbr", SqlDbType.Int); cmd.Parameters["@TagNbr"].Value = txtTagNumber.Text;</code>
Contoh 2: pertanyaan terdedah tanpa parameter
<code class="language-csharp">int tagnumber = Convert.ToInt16(txtTagNumber.Text); string sql = $"INSERT INTO Cars VALUES ({tagnumber})"; // Vulnerable to SQL injection</code>
dianggap sebagai parameter, dengan selamat dikendalikan oleh enjin pangkalan data. Contoh 2 secara langsung menggabungkan input pengguna ke dalam rentetan SQL, menjadikannya terdedah. Input berniat jahat dapat mengubah pelaksanaan pertanyaan, yang berpotensi membawa kepada pelanggaran data. txtTagNumber.Text
faedah pertanyaan parameter
Pertanyaan Parameterized memberikan beberapa kelebihan penting:
Atas ialah kandungan terperinci Bagaimanakah pertanyaan parameter menghalang serangan suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!