Mencegah SQL Injection dalam ASP.Net
SQL injection ialah kelemahan keselamatan biasa yang boleh membenarkan penyerang menjejaskan tapak web atau pangkalan data. Dalam ASP.Net, pertanyaan berparameter ialah kaedah yang disyorkan untuk menghalang suntikan SQL dengan memisahkan pernyataan SQL daripada input pengguna, dengan itu menghalang aksara berniat jahat daripada ditafsirkan sebagai sebahagian daripada pertanyaan.
Pertanyaan Berparameter Contoh
Coretan berikut menunjukkan cara menggunakan pertanyaan berparameter dalam ASP.Net untuk menghalang SQL suntikan:
SqlCommand cmd = new SqlCommand("Select * from Table where ref=@ref", con); cmd.Parameters.Add("@ref", SqlDbType.Int); cmd.Parameters["@ref"] = 34;
OpenQuery dengan Pelayan Terpaut
Apabila berurusan dengan pertanyaan yang diedarkan dan pelayan terpaut, OpenQuery boleh digunakan. Walau bagaimanapun, memandangkan OpenQuery menerima rentetan, menghantar pembolehubah sebagai sebahagian daripada rentetan adalah tidak mungkin. Untuk menyelesaikan masalah ini, pertanyaan boleh diformatkan seperti berikut:
Dim conn As SqlConnection = New SqlConnection("your SQL Connection String") Dim cmd As SqlCommand = conn.CreateCommand() cmd.CommandText = "Select * db...table where investor = @investor" Dim parameter As SqlParameter = cmd.CreateParameter() parameter.DbType = SqlDbType.Int parameter.ParameterName = "@investor" parameter.Direction = ParameterDirection.Input parameter.Value = 34
Langkah-Langkah Tambahan
Selain pertanyaan berparameter, langkah-langkah berikut boleh melindungi permohonan anda daripada Suntikan SQL:
Dengan mengikuti amalan terbaik ini dan kekal berwaspada terhadap ancaman suntikan SQL, anda boleh meningkatkan keselamatan aplikasi ASP.Net anda dengan ketara.
Atas ialah kandungan terperinci Bagaimanakah Pertanyaan Berparameter dan Langkah Lain Menghalang Suntikan SQL dalam ASP.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!