Digital Transformation

XSS (Cross-Site Scripting)

Vito Atmo
Vito Atmo·6 Mei 2026·0 kali dibaca·2 min baca

TL;DR: XSS (Cross-Site Scripting) adalah serangan saat penyerang menyisipkan kode JavaScript jahat ke halaman web yang dipercaya pengguna. Browser korban mengeksekusinya seolah datang dari situs aslinya, sehingga session cookie, data form, dan kredensial bisa dicuri. Pertahanan utamanya: input sanitization, output encoding, dan kebijakan Content Security Policy yang ketat.

Apa itu XSS?

XSS terjadi ketika sebuah aplikasi menerima data dari pengguna lalu menampilkannya kembali tanpa pembersihan yang memadai, sehingga skrip yang disisipkan ikut dieksekusi browser. Skrip itu jalan dengan hak akses domain situs target, jadi ia bisa membaca cookie, mengambil token, atau mengirim permintaan atas nama pengguna. Dalam praktik audit yang Vito Atmo lakukan untuk klien e-commerce dan LMS, kolom komentar, parameter pencarian, dan field profil yang tidak di-encode adalah titik masuk paling sering.

Jenis XSS

JenisLokasi payloadContoh kanal
StoredDisimpan di database serverKomentar artikel, review produk
ReflectedMuncul lewat URL/parameterHalaman hasil pencarian
DOM-basedDieksekusi di sisi klien dari document.location atau innerHTMLSingle-page application

Stored XSS paling berbahaya karena dampaknya beruntun ke setiap pengunjung halaman tersebut.

Kenapa Penting?

Untuk pemilik website bisnis di Indonesia, XSS bukan sekadar isu teknis. Ia bisa berakhir pada akun admin yang diambil alih, data customer bocor, hingga blacklist Google Safe Browsing yang memutus traffic organik. Dokumentasi OWASP memasukkan injection (termasuk XSS) sebagai salah satu top risk web tahunan yang konsisten muncul sejak 2017. Kombinasi dengan Tabnabbing atau social engineering membuat ekspektasi trust pengguna mudah dieksploitasi.

Pertanyaan Umum

Apakah HTTPS otomatis melindungi dari XSS?

Tidak. HTTPS hanya mengenkripsi jalur transmisi. XSS mengeksploitasi konten yang sudah sampai ke browser, jadi enkripsi tidak relevan untuk pertahanan ini.

Pertahanan paling praktis untuk tim non-security?

Gunakan framework yang escape default (React, Next.js menggunakan JSX yang otomatis encode), aktifkan CSP ketat, dan biasakan validasi input di server. Hindari dangerouslySetInnerHTML kecuali sumbernya benar-benar tepercaya.

Bagikan