Setelah kita mengetahui tentang apa itu Cross-Site Scripting, sekarang kita akan mengenali tentang tipe-tipe serta pencegahannya terjadinya eksploitasi dengan Cross-Site Scripting. Sebenarnya cara pencegahannya masih mirip-mirip dengan serangan lainnya, hanya saja di tempat yang berbeda. Baiklah, mari kita langsung menuju pembahasannya!
Tipe-Tipe Cross-Site Scripting
Ada tiga jenis utama serangan XSS. Diantaranya adalah
-> Reflected XSS -- di mana skrip berbahaya berasal dari permintaan HTTP saat ini.
-> Stored XSS -- di mana skrip berbahaya berasal dari database situs web.
-> DOM-Based XSS -- di mana kerentanan ada dalam kode sisi klien daripada kode sisi server.
1. Reflected XSS
Reflected XSS adalah variasi XSS yang paling sederhana. Hal ini muncul ketika aplikasi menerima data dalam permintaan HTTP dan memasukkan data itu dalam respons langsung dengan cara yang tidak aman.
Jika pengguna mengunjungi URL yang dibuat oleh penyerang, maka skrip penyerang dijalankan di browser pengguna, dalam konteks sesi pengguna tersebut dengan aplikasi. Pada saat itu, skrip dapat melakukan tindakan apa pun, dan mengambil data apa pun, yang dapat diakses oleh pengguna.
2. Stored XSS
Stored XSS (juga dikenal sebagai XSS persisten atau orde kedua) muncul saat aplikasi menerima data dari sumber yang tidak tepercaya dan menyertakan data tersebut dalam respons HTTP selanjutnya dengan cara yang tidak aman.
Data yang dipermasalahkan mungkin dikirimkan ke aplikasi melalui permintaan HTTP; misalnya, komentar pada posting blog, nama panggilan pengguna di ruang obrolan, atau detail kontak pada pesanan pelanggan. Dalam kasus lain, data mungkin datang dari sumber lain yang tidak tepercaya; misalnya, aplikasi webmail yang menampilkan pesan yang diterima melalui SMTP, aplikasi pemasaran yang menampilkan posting media sosial, atau aplikasi pemantauan jaringan yang menampilkan data paket dari lalu lintas jaringan.
3. DOM-Based XSS
DOM-Based XSS (juga dikenal sebagai DOM XSS) muncul ketika aplikasi berisi beberapa JavaScript sisi klien yang memproses data dari sumber yang tidak tepercaya dengan cara yang tidak aman, biasanya dengan menulis data kembali ke DOM.
Dalam kasus umum, bidang input akan diisi dari bagian dari permintaan HTTP, seperti parameter string kueri URL, yang memungkinkan penyerang mengirimkan serangan menggunakan URL jahat, dengan cara yang sama seperti Reflected XSS.
Tujuan dari Cross-Site Scripting
Sama seperti serangan lainnya, XSS bertujuan untuk:
-> Meniru atau menyamar sebagai pengguna korban.
-> Lakukan tindakan apa pun yang dapat dilakukan pengguna
-> Baca data apa pun yang dapat diakses pengguna.
-> Menangkap kredensial login pengguna.
-> Lakukan virtual defacement situs web.
-> Menyuntikkan fungsionalitas trojan ke situs web.
Cara Pencegahan Ancaman Cross-Site Scripting
Untuk menjaga diri kita aman dari XSS, kita harus mensanitasi input kita. Kode aplikasi kita tidak boleh menampilkan data yang diterima sebagai input langsung ke browser tanpa memeriksanya untuk kode berbahaya.
Mencegah Cross-site Scripting (XSS) tidaklah mudah. Teknik pencegahan khusus bergantung pada subtipe kerentanan XSS, pada konteks penggunaan input pengguna, dan pada kerangka kerja pemrograman. Namun, ada prinsip-prinsip strategis umum tertentu yang harus kita ikuti untuk menjaga keamanan aplikasi web.
1. Validasi Input
2. Jangan Percayai User Input
3. Membuat Prepared Statement
4. Mengikat Parameter dan Sanitasi HTML
5. Set Web Menjadi HttpOnly Flag
6. Gunakan Header Web Content Security Policy
image sources from unsplash
content sources from portswigger and acunetix
Comments
Post a Comment