Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Algoritma untuk menghindari injeksi SQL pada MSSQL Server dari kode C #?

Tidak diperlukan algoritme - hanya saja, jangan gunakan rangkaian string untuk membuat pernyataan SQL. Gunakan koleksi SqlCommand.Parameters sebagai gantinya. Ini melakukan semua pelepasan nilai yang diperlukan (seperti mengganti ' dengan '' ) dan memastikan perintah akan aman karena orang lain (mis. Microsoft) telah melakukan semua pengujian.

misalnya memanggil prosedur tersimpan:

using (var connection = new SqlConnection("..."))
using (var command = new SqlCommand("MySprocName", connection))
{
    command.CommandType = CommandType.StoredProcedure;
    command.Parameters.AddWithValue("@Param1", param1Value);
    return command.ExecuteReader();
}

Teknik ini juga berfungsi untuk pernyataan SQL sebaris, mis.

var sql = "SELECT * FROM MyTable WHERE MyColumn = @Param1";
using (var connection = new SqlConnection("..."))
using (var command = new SqlCommand(sql, connection))
{
    command.Parameters.AddWithValue("@Param1", param1Value);
    return command.ExecuteReader();
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menggunakan klausa Where dalam Select Statement di SQL Server - Tutorial SQL Server / TSQL Bagian 109

  2. Buat Pekerjaan Agen SQL Server menggunakan T-SQL

  3. SQL, tabel angka bantu

  4. Nama kolom variabel SQL Server?

  5. SQL:klausa JIKA dalam klausa WHERE