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

Di mana menggunakan mysql_real_escape_string untuk mencegah SQL Injection?

Pada dasarnya, setiap kali Anda menggunakan beberapa data yang tidak aman (input pengguna, nilai dari database, file, atau situs web eksternal, yaitu data apa pun yang Anda tidak 100% yakin aman) dalam kueri SQL, Anda harus menghindarinya menggunakan mysql_real_escape_string . Perhatikan bahwa menurut OWASP , fungsi ini tidak aman untuk menghindari nama tabel dinamis (tetapi ini jauh lebih jarang daripada penyisipan input pengguna "dasar").

Saya menyarankan Anda untuk melihat seluruh artikel OWASP tentang injeksi SQL , dan juga untuk menelusuri situs web lainnya. Ini adalah sumber informasi yang bagus tentang keamanan dalam aplikasi web.

IMO, cara yang lebih disukai untuk mencegah injeksi SQL adalah dengan menggunakan pernyataan yang disiapkan .

Harap diingat bahwa jika Anda memilih untuk menggunakan mysql_real_escape_string() itu hanya berfungsi ketika digunakan di dalam string yang dibatasi oleh tanda kutip. Jangan pernah menggunakannya pada nilai yang tidak dikutip. Ini termasuk nilai numerik; sebagai gantinya, validasikan bahwa input pengguna sebenarnya numerik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa meneruskan array nilai ke prosedur tersimpan saya?

  2. Cara membuat database dengan Liquibase

  3. bagaimana cara menggunakan kembali kunci utama yang dihapus di mysql?

  4. kesalahan:Skrip pengaturan keluar dengan kesalahan:perintah 'gcc' gagal dengan status keluar 1

  5. MySQL Group By dan Jumlah total nilai kolom lainnya