Mengurangkan Risiko Suntikan SQL dalam Penyata INSERT dengan Komen Kotak Teks
Walaupun aksesnya terhad dalam intranet syarikat, halaman web tinjauan anda menghadapi potensi risiko daripada serangan suntikan SQL, walaupun dalam konteks memasukkan komen daripada a kotak teks.
Suntikan SQL timbul apabila input pengguna yang tidak dipercayai dimasukkan terus ke dalam pernyataan SQL. Pertimbangkan pernyataan INSERT yang menambahkan ulasan pada jadual:
INSERT INTO COMMENTS VALUES (122, 'I like this website');
Bayangkan jika pengguna memasukkan ulasan berniat jahat berikut:
'); DELETE FROM users; --
Jika ulasan ini telah dimasukkan secara tidak sengaja ke dalam pernyataan SQL tanpa sebarang pemprosesan, ia akan melaksanakan dua tindakan dengan berkesan:
INSERT INTO COMMENTS VALUES (123, ''); DELETE FROM users; -- ');
Serangan ini akan mengakibatkan pemadaman semua data pengguna dalam jadual pengguna anda. Untuk mengelakkan pelanggaran keselamatan sedemikian, adalah penting untuk menggunakan pernyataan SQL berparameter.
Dalam .NET 2.0, anda boleh menggunakan koleksi SqlCommand.Parameters untuk mencipta pernyataan SQL berparameter. Parameter ini bertindak sebagai pemegang tempat untuk nilai yang dibekalkan pengguna, memastikan bahawa input diproses dan dikendalikan dengan selamat.
using (SqlCommand cmd = new SqlCommand("INSERT INTO COMMENTS VALUES (@id, @comment)")) { cmd.Parameters.AddWithValue("@id", 122); cmd.Parameters.AddWithValue("@comment", userInput); }
Dengan menggunakan pernyataan SQL berparameter, anda boleh melindungi pernyataan INSERT anda daripada input pengguna yang berniat jahat dan mengekalkan pengekodan yang betul amalan, melindungi integriti data anda.
Atas ialah kandungan terperinci Bagaimanakah Pernyataan SQL Berparameter Boleh Menghalang Suntikan SQL dalam Penyata INSERT dengan Komen Kotak Teks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!