Pendahuluan

Di dunia keamanan siber, istilah XSS atau Cross-Site Scripting menjadi salah satu ancaman paling umum di aplikasi web. Meski terlihat kecil, serangan ini bisa berdampak besar bagi pengguna dan pemilik website. XSS memungkinkan penyerang menyisipkan kode jahat ke dalam halaman web yang akan dijalankan oleh browser korban. Dalam artikel ini, kita akan membahas dua jenis utama XSS: Reflected dan Stored, serta perbedaannya.

Apa Itu Reflected XSS?

Reflected XSS terjadi saat kode berbahaya disisipkan dalam URL atau form input, lalu langsung dipantulkan kembali oleh server ke halaman web. Artinya, data yang dikirim user tidak disimpan, tetapi langsung ditampilkan kembali, tanpa disaring.

Contohnya: penyerang membuat tautan dengan kode jahat, lalu mengirimkannya ke korban. Jika korban membuka tautan tersebut, script akan dijalankan di browser-nya. Ini bisa digunakan untuk mencuri informasi seperti cookie atau login session.

Reflected XSS biasanya menargetkan satu orang lewat teknik phishing atau rekayasa sosial.

Apa Itu Stored XSS?

Stored XSS lebih berbahaya karena kode berbahaya disimpan permanen di server — biasanya di database. Contohnya, seorang penyerang mengirim komentar yang berisi script berbahaya ke forum atau halaman blog. Saat pengguna lain membuka halaman tersebut, kode jahat akan otomatis dijalankan di browser mereka.

Berbeda dengan Reflected, Stored XSS bisa menyerang banyak pengguna sekaligus, karena script-nya akan muncul setiap kali halaman yang terinfeksi dibuka.

Perbandingan Reflected dan Stored XSS

Aspek Reflected XSS Stored XSS
Lokasi serangan Di URL atau input Disimpan di database/server
Target Individu (via link berbahaya) Banyak pengguna
Eksekusi Seketika saat link diakses Otomatis saat halaman dibuka
Deteksi Lebih mudah ditemukan Lebih sulit karena tersembunyi
Dampak Terbatas Potensial sangat besar

Serangan XSS bisa digunakan untuk:

  • Mencuri data penting pengguna seperti cookie dan informasi login

  • Membajak akun pengguna

  • Mengarahkan pengguna ke situs palsu

  • Menyebarkan malware

Bayangkan jika admin sebuah situs terkena XSS. Penyerang bisa mengambil alih seluruh sistem hanya dengan satu klik!

Bagaimana Cara Mencegah XSS?

Untuk mencegah XSS, ada beberapa hal penting yang perlu dilakukan oleh developer:

  • Validasi input: Pastikan semua data dari pengguna diperiksa dan dibatasi.

  • Escape output: Gunakan teknik untuk menampilkan data ke halaman web tanpa menjalankan kode.

  • Gunakan framework yang aman: Banyak framework modern seperti React atau Laravel sudah menyediakan proteksi terhadap XSS secara default.

  • Terapkan Content Security Policy (CSP): Ini bisa membatasi jenis konten apa saja yang boleh dijalankan di browser.

Penutup

Reflected dan Stored XSS adalah dua bentuk serangan yang berbeda, tapi sama-sama berbahaya. Meski terlihat seperti celah kecil, dampaknya bisa sangat besar, mulai dari pencurian data hingga pengambilalihan akun. Sebagai developer maupun pengguna, penting untuk memahami jenis serangan ini dan cara mencegahnya. Keamanan web dimulai dari kesadaran dan kehati-hatian.