Memparameterkan Nama Lajur dalam SqlCommand
Pertanyaan berparameter adalah penting untuk mencegah serangan suntikan SQL dan memastikan keselamatan operasi pangkalan data anda. Walau bagaimanapun, C# SqlCommand menimbulkan cabaran yang pelik apabila ia berkaitan dengan parameter nama lajur. Sintaks yang dibentangkan dalam soalan asal menghasilkan ralat, kerana SqlCommand tidak menyokong parameterisasi nama lajur secara asli.
Untuk menangani perkara ini, adalah disyorkan untuk membina pertanyaan secara dinamik pada masa jalan. Ini melibatkan penggabungan nama lajur dengan pertanyaan yang lain. Walaupun ini mungkin kelihatan menyusahkan, adalah penting untuk mengurangkan risiko keselamatan:
// IMPORTANT: Ensure "slot" is validated against a whitelist to prevent injection attacks SqlCommand command = new SqlCommand("SELECT [" + slot + "] FROM Users WHERE name=@name; ") prikaz.Parameters.AddWithValue("name", name);
Dengan membina pertanyaan secara dinamik, anda boleh membuat parameter nama lajur dengan berkesan. Ingat untuk mengutamakan keselamatan dengan menyenarai putih atau mengesahkan semua input pengguna untuk mengelakkan potensi kelemahan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Parameter Nama Lajur dalam C# SqlCommand?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!