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

Mencegah Injeksi SQL di ASP.Net

Coba gunakan kueri berparameter di sini adalah tautan http://www.aspnet101.com/2007/03/parameterized-queries-in-asp-net/

Juga, jangan gunakan OpenQuery... gunakan this untuk menjalankan pilihan

SELECT * FROM db...table WHERE ref = @ref AND bookno = @bookno

Artikel lainnya yang menjelaskan beberapa opsi Anda:

http://support.microsoft.com/kb/314520

Apa sintaks T-SQL untuk terhubung ke SQL Server lain?

Diedit

Catatan:Pertanyaan awal Anda menanyakan tentang kueri terdistribusi dan server Tertaut. Pernyataan baru ini tidak mereferensikan kueri terdistribusi. Saya hanya bisa berasumsi Anda terhubung langsung ke database sekarang. Berikut adalah contoh yang seharusnya berfungsi. Berikut adalah situs referensi lain untuk menggunakan SqlCommand.Parameters

SqlCommand cmd = new SqlCommand("Select * from Table where [email protected]", con); 
cmd.Parameters.Add("@ref", SqlDbType.Int);
cmd.Parameters["@ref"] = 34;

Diedit:

Ok Jamie taylor saya akan mencoba menjawab pertanyaan anda lagi.

Anda menggunakan OpenQuery karena Anda mungkin menggunakan DB yang ditautkan

Pada dasarnya masalahnya adalah Metode OpenQuery mengambil string yang Anda tidak dapat meneruskan variabel sebagai bagian dari string yang Anda kirim ke OpenQuery.

Anda dapat memformat kueri Anda seperti ini. Notasi mengikuti servername.databasename.schemaname.tablename. Jika Anda menggunakan server yang ditautkan melalui odbc maka hilangkan nama database dan nama skema, seperti yang diilustrasikan di bawah ini

    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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tampilan INFORMATION_SCHEMA SQL Server | Lihat apakah Tabel Ada

  2. Mengonversi DateTime ke Format YYYY-MM-DD di SQL Server

  3. Apakah Integrasi SQL Server CLR mendukung file konfigurasi?

  4. Memecahkan masalah Replikasi SQL Server

  5. ExecuteScalar vs ExecuteNonQuery saat mengembalikan nilai identitas