Cara menggunakan htmlspecialchars xss
Cross-postingan ini sebagai referensi terkonsolidasi dari SO Beta dokumentasi yang sedang offline. Show MasalahSkrip lintas situs adalah eksekusi kode jarak jauh yang tidak disengaja oleh klien web. Aplikasi web apa pun dapat membuka dirinya ke XSS jika mengambil input dari pengguna dan mengeluarkannya langsung di halaman web. Jika input menyertakan HTML atau JavaScript, kode jarak jauh dapat dijalankan ketika konten ini diberikan oleh klien web. Misalnya, jika pihak ke-3 berisi file JavaScript:
Dan aplikasi PHP secara langsung menampilkan string yang dilewatkan ke dalamnya:
Jika parameter GET yang tidak dicentang mengandung
JavaScript pihak ke-3 akan berjalan dan pengguna akan melihat "Saya sedang menjalankan" di halaman web. LarutanSebagai aturan umum, jangan pernah percaya input yang datang dari klien. Setiap nilai GET, POST, dan cookie dapat berupa apa saja, dan karenanya harus divalidasi. Saat mengeluarkan salah satu dari nilai-nilai ini, lepas dari nilai-nilai ini sehingga tidak akan dievaluasi dengan cara yang tidak terduga. Ingatlah bahwa bahkan dalam aplikasi yang paling sederhana sekalipun data dapat dipindahkan dan akan sulit untuk melacak semua sumber. Karena itu merupakan praktik terbaik untuk selalu keluar dari output. PHP menyediakan beberapa cara untuk menghindari output tergantung pada konteksnya. Fungsi FilterFungsi Filter PHPs memungkinkan input data ke skrip php menjadi dibersihkan atau divalidasi di banyak cara . Mereka berguna saat menyimpan atau mengeluarkan input klien. Pengkodean HTML
Akan menghasilkan:
Segala
sesuatu di dalam tag Saat mengeluarkan URL yang dihasilkan secara dinamis, PHP menyediakan fungsi Setiap input jahat akan dikonversi ke parameter URL yang
disandikan. Terkadang Anda ingin mengirim HTML atau input kode jenis lain. Anda perlu mempertahankan daftar kata yang diotorisasi (daftar putih) dan tidak resmi (daftar hitam). Anda dapat mengunduh daftar standar yang tersedia di situs web OWASP AntiSamy . Setiap daftar cocok untuk
jenis interaksi tertentu (ebay api, tinyMCE, dll ...). Dan itu adalah open source. Ada perpustakaan yang ada untuk menyaring HTML dan mencegah serangan XSS untuk kasus umum dan melakukan setidaknya serta daftar AntiSamy dengan penggunaan yang sangat mudah. Misalnya Anda memiliki Pemurni HTML Cross Site Scripting , atau yang lebih dikenal dengan “XSS”. Cross Site Scripting (XSS) Dilakukan
oleh si penyerang dengan memasukkan kode HTML yang akan di eksekusi oleh webserver. Bug ini masuk kedalam kategori bug yang fatal, karena penyerang dapat mencuri cookies dari sebuah web. Bagaimana cara menutup celah keamanannya?, kita bisa menggunakan htmlentities(), dan htmlspecialchars(). Dibawah ini adalah salah satu simulasi dari bagaimana source code sebuah website yang rentan terhadap bug Cross Site Scripting (XSS) dan cara menutup Bug nya. setelah selesai coding source code
diatas, kita save dengan extensi .php, setelah itu langsung kita upload ke hosting. Teman teman belum memiliki hosting? langsung saja kunjungi https://host.theblackpaper.org atau chat nomor dibawah ini +6282230589068 untuk membeli hosting berkualitas dengan harga yang bersahabat. Setelah kita upload di hosting, terdapat sebuah form. Kita coba masukkan kode html untuk melihat bug Cross Site Scripting (XSS). Berikut
adalah kodenya setelah kita masukkan di form tersebut, klik enter pada keyboard teman teman. Bisa dilihat, terdapat teks yang diberi garis bawah, hal ini menunjukkan bahwa website tersebut memiliki celah keamanan Cross Site Scripting (XSS). Bagaimana cara menutup kerentanannya ya?, kita gunakan htmlspecialchars() atau htmlentities(). Disini saya menggunakan htmlspecialchars() untuk mengkonversi 4 karakter khusus HTML, Diantaranya adalah <, >, & dan “, karakter yang
dikonversikan ini tidak akan diproses oleh webserver dehingga tidak akan terjadi serangan Cross Site Scripting (XSS). Yuk kita ubah source codenya.. Kita ganti file sebelumnya dengan source code yang baru, masukkan kode HTML Dibawah ini di form yang ada. bisa kita lihat, kode yang kita masukkan di form yang ada tidak diproses oleh webserver. Teks yang muncul sama dengan apa yang telah kita masukkan di form, termasuk kode yang telah kita masukkan. Sekian artikel kali
ini, Terima kasih |