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

Apa Praktik Terbaik untuk mencegah injeksi SQL di node-mysql?

Ingat bahwa injeksi SQL disebabkan oleh string bermusuhan yang ditafsirkan sebagai perintah, bukan dengan memblokir perintah. Apakah Anda yakin mendapatkan kembali string asli, bukan versi string?

Misalnya ada perbedaan besar antara keduanya:"test" dan "'test'" .

Umumnya hanya karakter berbahaya yang lolos, sisanya dibiarkan apa adanya.

Menggunakan driver tingkat rendah sebaiknya dihindari. Coba dan gunakan perpustakaan seperti Sekuel untuk memberikan beberapa abstraksi dan lebih banyak dukungan. Modul itu mendukung pernyataan placeholder yang umumnya membuat pelolosan bukan masalah, itu ditangani secara otomatis.

Lihat bagian di kueri mentah dengan pengganti di mana Anda memiliki kemampuan untuk melakukan ini:

sequelize.query('SELECT * FROM projects WHERE status = ?',
  { replacements: ['active'], type: sequelize.QueryTypes.SELECT }
).then(function(projects) {
  console.log(projects)
})

Tidak ada risiko kebocoran data pengguna karena Anda telah memberikannya sebagai nilai eksplisit yang ditangani dengan benar, bukan string sebaris dalam kueri.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Koneksi dibatalkan saat menggunakan node.js/mysql connectionPool

  2. Cara Membuat CRUD Sederhana Menggunakan PHP dan MySQL Dengan Mudah

  3. Catatan SQL Count dalam sebulan menggunakan cap waktu unix

  4. memperbarui kolom dengan nomor urut mysql

  5. MySQL Levenshtein