Â
Analisis Eksperimen
Permanen: Skrip disimpan di database, menjadikan semua pengguna yang membuka halaman sebagai target.
-
Berbahaya: Bisa digunakan untuk mencuri cookie, menanam skrip keylogger, redirect ke halaman palsu, dsb.
Sangat umum terjadi pada CMS tua, blog custom, dan aplikasi tanpa filter input.
Bagaimana Cara Mencegah XSS?
Beberapa cara penting untuk mencegah XSS:
Gunakan htmlspecialchars() sebelum menampilkan komentar:
echo htmlspecialchars($row['comment'], ENT_QUOTES, 'UTF-8');
- Gunakan framework modern (misalnya Laravel, yang sudah memiliki perlindungan XSS bawaan).
- Aktifkan Content Security Policy (CSP) di header HTML.
Kesimpulan
Melalui eksperimen Stored XSS yang telah dilakukan, terbukti bahwa kerentanan ini jauh lebih berbahaya dibandingkan Reflected XSS karena skrip berbahaya disimpan secara permanen di dalam database dan akan dieksekusi setiap kali halaman diakses. Ini membuka peluang besar bagi penyerang untuk menargetkan banyak pengguna sekaligus, mencuri data sensitif, atau menjalankan aksi berbahaya lainnya.
Eksperimen ini menegaskan pentingnya langkah-langkah pencegahan seperti escaping output, validasi dan sanitasi input, serta penerapan Content Security Policy (CSP). Penggunaan framework modern yang menyediakan perlindungan XSS secara default juga sangat disarankan.