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

Apakah baik menggunakan htmlspecialchars() sebelum Memasukkan ke MySQL?

Seperti yang telah ditunjukkan orang lain, # 2 adalah jawaban yang benar. Biarkan "mentah" sampai Anda membutuhkannya, lalu keluar dengan tepat.

Untuk menjelaskan alasannya (dan saya akan mengulangi/meringkas postingan lainnya), mari kita ambil skenario 1 ke logika ekstremnya.

Apa yang terjadi ketika seseorang memasukkan " ' OR 1=1 <other SQL injection> -- ". Sekarang mungkin Anda memutuskan bahwa karena Anda menggunakan SQL, Anda harus menyandikan untuk SQL (mungkin karena Anda tidak menggunakan pernyataan berparameter). Jadi sekarang Anda harus mencampur (atau memutuskan) penyandian SQL &HTML.

Tiba-tiba bos Anda memutuskan dia menginginkan keluaran XML juga. Sekarang untuk menjaga pola Anda tetap konsisten, Anda juga perlu menyandikannya.

CSV berikutnya - oh tidak! Bagaimana jika ada tanda kutip dan koma dalam teks? Lebih banyak melarikan diri!

Hei - bagaimana dengan antarmuka AJAX interaktif yang bagus? Sekarang Anda mungkin ingin mulai mengirim JSON kembali ke browser jadi sekarang {, [ dll. semua perlu dipertimbangkan. BANTUAN!!

Jadi jelas, simpan data seperti yang diberikan (tentu saja tunduk pada batasan domain) dan enkode sesuai dengan output Anda pada saat Anda membutuhkannya . Keluaran Anda tidak sama dengan data Anda.

Saya harap jawaban ini tidak terlalu menggurui. Kredit untuk responden lain.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masukkan Nilai Kotak Pilih Dinamis Di Database Mysql Dan Tampilkan Data yang Dikirim Pesan

  2. MySQL di mana TIDAK DALAM array nama?

  3. Periksa apakah ada, jika demikian, perbarui dengan 1++, jika tidak masukkan

  4. hitungan untuk setiap bergabung - pengoptimalan

  5. MySQL, menyalin file tabel menimbulkan ERROR 1017 (HY000):Tidak dapat menemukan file:meskipun ada di sana