I. Pendahuluan
Di era digital sekarang ini, banyak aktivitas kita bergantung pada aplikasi web. Kita menggunakan situs untuk belanja, mengakses layanan perbankan, mengelola bisnis, bahkan untuk belajar. Tapi di balik kenyamanan itu, ada banyak ancaman keamanan yang mengintai. Salah satunya adalah serangan Cross Site Scripting (XSS).
XSS adalah jenis serangan yang cukup umum dan sering terjadi pada situs web. Meskipun terlihat sederhana, serangan ini bisa berdampak besar jika tidak dicegah sejak awal. Artikel ini akan membahas bagaimana mekanisme serangan XSS bekerja dan apa saja cara yang bisa dilakukan untuk mencegahnya.
II. Apa Itu Cross Site Scripting (XSS)?
Cross Site Scripting atau XSS adalah teknik serangan yang memanfaatkan celah pada input pengguna di sebuah situs. Serangan ini terjadi ketika penyerang berhasil menyisipkan skrip berbahaya, biasanya JavaScript, ke dalam halaman web yang digunakan orang lain.
Jika skrip itu berhasil dijalankan di browser korban, penyerang bisa mencuri data seperti cookie, informasi login, atau bahkan mengambil alih akun pengguna. Karena itu, XSS termasuk dalam salah satu ancaman yang cukup serius dalam keamanan web.
III. Cara Kerja Serangan XSS (Mekanisme XSS)
Tahap 1: Menemukan Celah Input yang Rentan
Serangan XSS dimulai dengan mencari bagian dari situs web yang menerima input dari pengguna. Ini bisa berupa kolom komentar, formulir pencarian, atau parameter URL. Jika bagian ini tidak memfilter atau membersihkan input dengan baik, penyerang bisa menyisipkan skrip berbahaya.
Tahap 2: Penyisipan Kode Berbahaya
Penyerang kemudian menyisipkan skrip berbahaya ke dalam input tersebut. Contohnya:
Skrip ini terlihat sederhana, tapi bisa diubah menjadi lebih berbahaya untuk mencuri data pengguna.
Tahap 3: Eksekusi di Browser Pengguna
Ketika pengguna lain membuka halaman yang memuat input tersebut, browser akan menjalankan skrip berbahaya seolah-olah itu bagian dari situs. Karena datang dari domain yang dipercaya, browser tidak memblokirnya.
Tahap 4: Aksi Penyerang
Setelah skrip berjalan, penyerang bisa mengambil data dari pengguna, mengubah tampilan situs, atau mengarahkan pengguna ke situs palsu. Skrip juga bisa mengirim data ke server milik penyerang tanpa diketahui oleh korban.
IV. Jenis-Jenis XSS Terkait Mekanisme
Ada tiga jenis utama XSS yang memiliki mekanisme serangan berbeda:
-
Stored XSS (tersimpan) terjadi saat skrip berbahaya disimpan di server, misalnya di komentar atau pesan forum.
-
Reflected XSS (dipantulkan) terjadi saat skrip dikirim lewat URL dan langsung dipantulkan kembali ke halaman.
-
DOM-Based XSS terjadi langsung di sisi klien (browser) ketika JavaScript memproses input yang tidak aman.
Ketiga jenis ini bisa menyerang dengan cara yang berbeda, tapi tujuannya sama: membuat skrip penyerang berjalan di browser korban.
V. Teknik Perlindungan terhadap Serangan XSS
Validasi dan Sanitasi Input
Selalu periksa data yang dimasukkan pengguna. Hapus atau ganti karakter yang berpotensi berbahaya, seperti tanda <, >, ” dan ‘.
Escaping Output
Saat menampilkan data dari pengguna di halaman web, pastikan karakter spesial tidak ditafsirkan sebagai kode. Misalnya, ubah <
menjadi <
.
Content Security Policy (CSP)
CSP adalah pengaturan di server yang memberi tahu browser skrip mana saja yang boleh dijalankan. Dengan CSP, skrip berbahaya yang tidak dikenali akan otomatis diblokir.
Gunakan Framework Aman
Gunakan framework seperti React, Angular, atau Vue yang memiliki perlindungan XSS bawaan. Framework ini biasanya sudah dirancang untuk mencegah penempatan skrip berbahaya secara otomatis.
Uji Keamanan Secara Rutin
Lakukan pengujian keamanan secara berkala menggunakan alat seperti OWASP ZAP, Burp Suite, atau XSS scanner. Dengan begitu, potensi celah bisa ditemukan dan diperbaiki lebih awal.
VI. Contoh Sederhana Serangan dan Perlindungannya
Misalnya, pada situs komentar yang tidak memfilter input, penyerang bisa menulis komentar seperti ini:
Jika komentar ini muncul di halaman dan dijalankan, cookie pengguna akan terkirim ke server penyerang. Untuk mencegahnya, situs harus memfilter karakter < dan >, atau menggunakan fungsi escape()
untuk menampilkan teks secara aman.
VII. Kesimpulan
Serangan XSS adalah salah satu ancaman paling sering terjadi di dunia web. Meskipun mekanismenya sederhana, serangan ini bisa sangat merusak jika tidak ditangani dengan benar. Celah kecil dalam input pengguna bisa dimanfaatkan untuk mencuri data, mengganggu tampilan situs, dan merugikan pengguna.
Untuk melindungi aplikasi dari XSS, penting bagi pengembang untuk selalu memvalidasi input, mengamankan output, menggunakan CSP, memilih framework yang aman, dan melakukan uji keamanan secara rutin. Dengan langkah-langkah ini, risiko XSS bisa dikurangi secara signifikan.
NAMA: AISYA
NIM: 23156201029
PRODI: SISTEM KOMPUTER