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

Apakah bidang pilihan drop-down rentan terhadap segala jenis injeksi?

Setiap elemen di situs web dapat diubah oleh pengguna jahat (bidang tersembunyi, div, gaya, panggilan ajax, sebut saja...).

Oleh karena itu, jika Anda sudah menggunakan Pernyataan yang Disiapkan, Anda tidak perlu terlalu khawatir tentang SQL Injection karena mysql sudah mengetahui pernyataan apa yang akan dieksekusi.

Alih-alih, Anda harus membersihkan semua output yang sedang dirender di situs web.

Katakanlah dalam formulir Anda, Anda bertanya di negara mana saya tinggal dengan cara ini:

 <select name="country">
     <option value="Mexico">Mexico</option>
     <option value="USA">USA</option>
     <option value="Canada">Canada</option>
 </select>

tetapi saya adalah pengguna yang jahat, dan saya menggunakan pemeriksa kode Chrome untuk mengubah HTML Anda, dan saya memilih Meksiko, tetapi mengubah nilainya menjadi

<script type="text/javascript">alert("Hello World");</script>

dan jika Anda menampilkan nilai itu di halaman lain dengan cara ini:

 Your country is: <?=$country?>

Maka Anda akan menulis:

 Your country is:
 <script type="text/javascript">alert("Hello World")</script>

dan kotak peringatan akan muncul dengan teks "Hello World"

Apa salahnya saya sehingga Anda mungkin bertanya-tanya...

baik saya dapat melakukan apa pun yang saya inginkan dengan itu, saya dapat mencuri cookie atau jika nilai itu bersifat publik (katakanlah bahwa Anda menampilkan nilai itu di halaman depan Anda), maka saya dapat mengarahkan pengguna Anda ke situs web lain, mengubah konten situs web Anda.. . apa pun yang saya inginkan.

Untuk membersihkan keluaran pengguna Anda, Anda dapat menggunakan

htmlentities

Itu akan mengonversi, misalnya, &lt; > simbol ke kode masing-masing:&lt; dan &gt



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memigrasikan MySQL ke PostgreSQL di AWS RDS, Bagian 2

  2. Bagaimana cara mendapatkan kata sandi MySQL saya yang terlupa dari MySQL Workbench di macOS?

  3. Kelas Bersarang - CustomRowMapper !! Bukan Masalah Lagi!! - Bagian 1

  4. Fungsi MySQL LEAST() – Temukan Argumen Terkecil dalam Daftar Argumen

  5. PHP - Buat kotak centang dengan menggunakan catatan dari database MySQL sebagai nilai