Bagaimana untuk Memasukkan Data dengan Selamat ke dalam MySQL Menggunakan C#: AddWithValue vs. Pemegang Tempat?

DDD
Lepaskan: 2024-11-07 17:24:03
asal
722 orang telah melayarinya

How to Securely Insert Data into MySQL Using C#: AddWithValue vs. Placeholders?

C# dengan MySQL: Menggunakan Parameter INSERT untuk Kemasukan Data Selamat

Dalam pengaturcaraan C#, memasukkan data ke dalam pangkalan data MySQL memerlukan pertimbangan yang teliti untuk mengelakkan kelemahan keselamatan. Panduan ini menangani isu pengikatan parameter dalam arahan INSERT, menyediakan penyelesaian yang selamat dan berkesan.

Masalahnya

Apabila menggunakan MySqlCommand, nyatakan parameter menggunakan kaedah Tambah tanpa menggunakan AddWithValue atau menghantar nama parameter yang betul boleh membawa kepada sisipan nilai nol atau ralat sintaks. Ini boleh menjejaskan integriti data dan mendedahkan aplikasi kepada serangan suntikan SQL.

Penyelesaian

Untuk memastikan pengikatan data selamat, terdapat dua pendekatan yang disyorkan:

Kaedah AddWithValue:

Dengan menggunakan Kaedah AddWithValue, anda boleh memasukkan nilai ke dalam parameter dengan selamat tanpa perlu risau tentang nama parameter atau penukaran jenis data.

string connString = ConfigurationManager.ConnectionStrings["default"].ConnectionString;
MySqlConnection conn = new MySqlConnection(connString);
conn.Open();
MySqlCommand comm = conn.CreateCommand();
comm.CommandText = "INSERT INTO room(person,address) VALUES(@person, @address)";
comm.Parameters.AddWithValue("@person", "Myname");
comm.Parameters.AddWithValue("@address", "Myaddress");
comm.ExecuteNonQuery();
conn.Close();
Salin selepas log masuk

Menggunakan ? Pemegang tempat:

Sebagai alternatif, anda boleh menggunakan ? pemegang tempat dalam arahan INSERT dan tambah parameter seperti berikut:

string connString = ConfigurationManager.ConnectionStrings["default"].ConnectionString;
MySqlConnection conn = new MySqlConnection(connString);
conn.Open();
MySqlCommand comm = conn.CreateCommand();
comm.CommandText = "INSERT INTO room(person,address) VALUES(?person, ?address)";
comm.Parameters.Add("?person", "Myname");
comm.Parameters.Add("?address", "Myaddress");
comm.ExecuteNonQuery();
conn.Close();
Salin selepas log masuk

Dengan menggunakan mana-mana pendekatan, anda boleh memasukkan data dengan selamat ke dalam pangkalan data MySQL, menghalang pemasukan nilai nol dan kelemahan suntikan SQL.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Data dengan Selamat ke dalam MySQL Menggunakan C#: AddWithValue vs. Pemegang Tempat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan