Meneruskan parameter ke SQL akan menyelamatkan Anda dari keharusan membuat string SQL dinamis.
Membuat pernyataan SQL dinamis adalah risiko keamanan BESAR karena orang dapat memasukkan kode SQL mereka sendiri ke dalam aplikasi Anda, kemungkinan mengeksekusi perintah yang tidak diinginkan terhadap data Anda.
Ada beberapa contoh bagus dari kemungkinan serangan SQL Injection di:
Serangan Injeksi SQL dengan Contoh
Ada dua cara untuk melewatkan parameter ke pernyataan SQL. Salah satunya adalah dengan menggunakan Prosedur Tersimpan seperti yang Anda sebutkan. Yang lainnya adalah menggunakan kueri berparameter (yang sebenarnya saya sukai).
Kueri berparameter sebenarnya cukup mudah di .NET:
using(SqlConnection conn = new SqlConnection(connString))
{
SqlCommand command =
new SqlCommand("SELECT * FROM Users WHERE Username = @Username", conn);
command.Parameters.Add(new SqlParameter("@Username", "Justin Niessner"));
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataTable dt = new DataTable();
adapter.Fill(dt);
}
Dalam contoh itu, parameternya adalah @Username
dan kami menggunakan Parameters
kumpulan SqlCommand
objek untuk meneruskan nilai.