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

Mencegah skrip sisi server, XSS

Jangan pernah mengeluarkan sedikit pun data apa pun ke aliran HTML yang belum melewati htmlspecialchars() dan Anda sudah selesai. Aturan sederhana, mudah diikuti, sepenuhnya menghapus semua risiko XSS.

Sebagai seorang programmer, ini adalah Anda pekerjaan untuk melakukannya.

Anda dapat menentukan

function h(s) { return htmlspecialchars(s); }

jika htmlspecialchars() terlalu panjang untuk menulis 100 kali per file PHP. Di sisi lain, menggunakan htmlentities() tidak perlu sama sekali.

Poin kuncinya adalah:Ada kode, dan ada data. Jika Anda mencampurkan keduanya, hal-hal buruk akan terjadi.

Dalam kasus HTML, kode adalah elemen, nama atribut, entitas, komentar. Data adalah segalanya. Data harus diloloskan agar tidak disalahartikan sebagai kode.

Dalam hal URL, kode adalah skema, nama host, jalur, mekanisme string kueri (? , & , = , # ). Data adalah segalanya dalam string kueri:nama dan nilai parameter. Mereka harus diloloskan agar tidak disalahartikan sebagai kode.

URL yang disematkan dalam HTML harus diloloskan dua kali (dengan lolos dari URL dan HTML-escape) untuk memastikan pemisahan yang tepat antara kode dan data.

Peramban modern mampu mengurai markup yang rusak dan salah menjadi sesuatu yang berguna. Kemampuan ini tidak boleh ditekankan. Fakta bahwa sesuatu terjadi untuk bekerja (seperti URL di <a href> tanpa pelolosan HTML yang tepat diterapkan) tidak berarti baik atau benar untuk melakukannya. XSS adalah masalah yang berakar pada a) orang yang tidak menyadari pemisahan data/kode (mis.

XSS cukup mudah untuk dihindari jika Anda memastikan Anda tidak termasuk dalam kategori a) dan b).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. buat tayangan slide gambar di dalam modal bootstrap secara dinamis menggunakan PHP

  2. MYSQL - dapatkan satu baris untuk setiap tahun, dengan jumlah total untuk setiap bulan

  3. Mengapa MySQL tidak menggunakan salah satu dari kemungkinan kunci ini?

  4. Kembalikan ID Terakhir (IDENTITAS) Pada baris Sisipkan VB.NET MySQL

  5. Tambah dan kurangi nilai baris sebesar 1 di MySQL