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

Bagaimana cara menangkap/mengkodekan karakter khusus untuk SQL Server di aplikasi java?

Saya kira Anda membangun SQL dalam beberapa cara seperti

String sql = "Select Column from tab where column='" + StringParm + "'"; 

Atau sesuatu seperti itu? Jika Anda melakukannya, Anda terbuka untuk semua jenis eksploitasi dan Anda juga akan melihat perilaku seperti yang Anda jelaskan, di mana string yang dihasilkan bukan lagi SQL yang valid. Anda harus keluar dari parameter yang diberikan pengguna terlebih dahulu.

Solusi terbaik adalah dengan menggunakan PreparedStatements, jadi Anda melakukannya

Statement stmt = conn.prepareStatement("Select Column from tab where column=?");
stmt.setString(1,StringParam);

Saya tidak dapat melihat cara cepat untuk menyelesaikan masalah Anda tanpa mengubah kode Java apa pun, bilah mungkin keluar/membersihkan input sebelum menyentuh kode Anda (mis. javascript jika Anda adalah aplikasi web)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nilai eksplisit untuk kolom identitas dalam tabel hanya dapat ditentukan saat daftar kolom digunakan dan IDENTITY_INSERT AKTIF SQL Server

  2. Bagaimana mengonversi hierarki bersarang dari xml ke tabel sql

  3. Apakah mungkin untuk menolak akses ke SQL Server dari program tertentu?

  4. Grup SQL Server berdasarkan Hitungan DateTime Per Jam?

  5. Bagaimana cara mengurutkan string menurut abjad