Cross-Site Scripting (XSS)

Cross-Site Scripting (XSS) adalah jenis kerentanan keamanan web yang terjadi saat penyerang berhasil menyuntikkan script JavaScript berbahaya ke dalam website tepercaya, yang kemudian dieksekusi di browser milik pengunjung lain secara tidak sengaja.

1. Analogi Racun di Wadah Air Publik

Bagaimana skenario serangan XSS terjadi di dunia nyata?

Bayangkan dispenser air minum gratis di lobi kantor publik. Penutup atas tangki dispenser tersebut rusak dan tidak dikunci pengelola. Seorang penyerang menuangkan racun tidak berasa ke dalam tangki dispenser (Suntikan Script). Sesaat kemudian, pengunjung umum datang meminum air dispenser tepercaya tersebut (browser korban menjalankan script tersebut). Korban terkena dampak karena mengira air minum tersebut aman berasal dari dispenser resmi gedung.

2. Tiga Jenis Serangan XSS

Serangan XSS secara umum diklasifikasikan menjadi tiga jenis utama:

  • Stored XSS (Persisten): Script jahat disimpan permanen di database server (misalnya di kolom komentar postingan). Setiap kali ada user membuka artikel tersebut, script jahat otomatis berjalan di browser mereka. Ini adalah jenis paling berbahaya.
  • Reflected XSS: Script jahat disisipkan di dalam parameter tautan URL palsu. Korban harus terjebak mengklik link tersebut agar script memantul dari server dan berjalan di komputernya.
  • DOM-based XSS: Kerentanan murni terjadi di file JavaScript sisi frontend yang membaca input masukan pengguna secara tidak aman tanpa melibatkan database server sama sekali.

3. Teknik Pencegahan: HTML Escaping & Sanitasi

Untuk mencegah XSS, pengembang web wajib melakukan sanitasi ketat pada setiap input pengguna. Salah satu metode utama adalah **HTML Escaping**, yaitu mengubah simbol-simbol khusus HTML menjadi karakter teks aman agar tidak bisa dieksekusi browser sebagai kode:

  • Mengubah < menjadi &lt;
  • Mengubah > menjadi &gt;
  • Menggunakan library sanitasi terpercaya seperti DOMPurify.
?

Uji Pemahaman Mandiri

Bagaimana cara terbaik bagi pengembang web untuk mencegah celah keamanan Cross-Site Scripting (XSS)?

A. Menginstal aplikasi antivirus di laptop masing-masing pengunjung website
B. Melakukan sanitasi dan konversi (escape) karakter HTML khusus pada setiap input pengguna sebelum dirender
C. Mengganti semua tag <div> di HTML menjadi tag <section>

Bangun Karier Sebagai AI Engineer dalam 8 Minggu!

Info Detail