Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Injeksi SQL di Java dan MySQL saat menggunakan banyak kueri

Tentu saja, jika Anda mengubah kombinasi database/driver dari implementasi Anda saat ini menjadi sesuatu yang mendukung banyak permintaan, maka Anda akan mengaktifkan lubang keamanan tidak aktif yang (tidak diragukan lagi) akan dilupakan orang!

Mengabaikan skenario jahat dan jahat, hal di atas akan menyebabkan Anda mengalami masalah dengan memasukkan data biasa, termasuk karakter kutipan, dll. yaitu di atas tidak akan berfungsi untuk kumpulan data tertentu (kecuali dibersihkan/dihilangkan, dll.). Saya akan memperbaikinya hanya untuk tujuan fungsionalitas.

Anda harus melihat PreparedStatement , dan metode penyisipan data untuk ini (setString() ) dll.

misalnya:

   PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
                                     SET SALARY = ? WHERE ID = ?");
   pstmt.setBigDecimal(1, 153833.00)
   pstmt.setString(2, "Insert what you like here")

Metode setString() akan mendukung string apa pun tanpa masalah pelolosan/injeksi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Class.forName(com.mysql.jdbc.Driver).newInstance()

  2. Optimalisasi kinerja MySQL:pesan berdasarkan bidang datetime

  3. Kesalahan MySQL 1449:Pengguna yang ditentukan sebagai penentu tidak ada

  4. Perbedaan TimeZone di mysql dan java

  5. Kelambatan ditemukan ketika gambar dasar 64 memilih dan mengkodekan dari database