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

Cegah Injeksi SQL dalam klausa ORDER BY

Jika Anda memiliki untuk berurusan dengan string, maka daftar putih adalah taruhan terbaik Anda. Pertama, sortDirection seharusnya cukup sepele untuk daftar putih:peka huruf besar-kecil dibandingkan dengan "asc" / "desc" dan Anda harus diatur. Untuk yang lain, preferensi saya adalah memasukkan daftar putih ke kolom yang diketahui , mungkin dengan meneruskan Type . yang diharapkan untuk data dan validasi. Tetapi dalam keadaan darurat, Anda dapat membatasi dengan regex untuk (katakanlah) menegakkan semuanya dengan ketat alfa-numerik (dalam rentang a-z, A-Z, 0-9 - mungkin garis bawah jika diperlukan) - lalu tambahkan [] , yaitu

return string.Format("[{0}] {1}", sortColumn, sortDirection);

Tetapi:daftar putih ketat dari kolom yang diketahui akan jauh lebih baik, seperti halnya enum untuk arahnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Seluruh Proses untuk Memulihkan Database SQL Server Dari Command Prompt

  2. Masukkan beberapa node ke bidang xml dalam satu kueri

  3. SQL Alert ketika prosedur tersimpan dijalankan terlalu lama

  4. Buat Tabel di SQL Server 2017

  5. Membuat database baru dari cadangan Database lain di server yang sama?