Pertanyaan Parameterized: Pertahanan yang teguh terhadap suntikan SQL
Keselamatan pangkalan data adalah yang paling penting dalam pengaturcaraan SQL. Serangan suntikan SQL menimbulkan ancaman yang signifikan, tetapi pertanyaan parameternya memberikan pertahanan yang kuat. Mereka mencapai ini dengan memisahkan data yang dibekalkan pengguna dari perintah SQL itu sendiri.mari kita gambarkan dengan dua contoh penyisipan data dari kotak teks:
Contoh 1: Pendekatan selamat (pertanyaan parameter)
SqlCommand cmd = new SqlCommand("INSERT INTO dbo.Cars VALUES(@TagNbr);", conn); cmd.Parameters.Add("@TagNbr", SqlDbType.Int); cmd.Parameters["@TagNbr"].Value = txtTagNumber.Text;
bertindak sebagai pemegang tempat. Nilai dari @TagNbr
dianggap sebagai data, bukan kod yang boleh dilaksanakan. txtTagNumber
Contoh 2: Pendekatan terdedah (tidak parameter)
int tagnumber = txtTagNumber.Text.ToInt16(); INSERT into Cars values(tagnumber);
Mengapa pertanyaan parameternya lebih unggul:
Pertanyaan Parameterized menawarkan kelebihan yang ketara:
Atas ialah kandungan terperinci Bagaimanakah pertanyaan parameternya dapat menjamin pertanyaan SQL terhadap serangan suntikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!