Command Palette

Search for a command to run...

Glosarium XSS (Cross-Site Scripting)

Apa Itu XSS (Cross-Site Scripting)?

Cross-Site Scripting, atau XSS, adalah cacat keamanan pada situs web yang memungkinkan penyerang menambahkan skrip berbahaya ke halaman web. Sebagian besar waktu, skrip ini ditulis dalam JavaScript.

Jika seseorang mengunjungi halaman yang terpengaruh oleh XSS, browser mereka menjalankan skrip penyerang. Ini dapat mengakibatkan pencurian cookie, pembajakan sesi, atau tindakan yang diambil tanpa izin pengguna.

XSS, seperti SQL Injection, secara teratur terdaftar dalam OWASP Top 10 sebagai salah satu kerentanan aplikasi web yang paling umum.

plexicus-xss-attack-ilustration

Bagaimana XSS Bekerja?

XSS sering menargetkan aplikasi web yang tidak memeriksa dan membersihkan input pengguna dengan benar.

Misalnya, jika kotak komentar memungkinkan HTML mentah atau JavaScript tanpa penyaringan, penyerang dapat menambahkan kode seperti ini:

<script>alert('Hacked!');</script>

Ketika korban melihat halaman tersebut, kode berbahaya berjalan di dalam browser mereka.

Mengapa XSS Penting dalam Keamanan Siber

XSS dapat menyebabkan pelanggaran yang lebih besar:

  • Pengambilalihan akun (mencuri cookie sesi untuk menyamar sebagai pengguna)
  • Pencurian data (menangkap input formulir seperti kata sandi atau kartu kredit)
  • Serangan phishing (menyuntikkan formulir login palsu)
  • Pengiriman malware (mengarahkan pengguna ke situs web berbahaya)

Jenis XSS

  1. XSS Berbasis DOM
  2. Serangan terjadi sepenuhnya di browser dengan memanipulasi Document Object Model (DOM) tanpa melibatkan server.
  3. XSS Tersimpan
  4. Skrip berbahaya disimpan secara permanen di server, seperti di database, halaman profil.
  5. XSS Terefleksi
  6. Skrip dipantulkan dari server web (misalnya, dalam URL atau pesan kesalahan), skrip akan dieksekusi ketika korban mengklik tautan yang dibuat oleh penyerang.

Cara Mencegah XSS

  • Sanitasi input & encoding output : selalu membersihkan data input pengguna sebelum memprosesnya, mengubah input pengguna menjadi format yang aman
  • Gunakan Kebijakan Keamanan Konten (CSP) : membatasi skrip apa yang dapat dijalankan di browser.
  • Hindari eval() dan JavaScript inline : untuk mengurangi risiko injeksi.
  • Pengujian keamanan (DAST/IAST) : jalankan pengujian keamanan untuk mendeteksi kerentanan lebih awal

Contoh Kasus Dunia Nyata - Cacing Samy (MySpace, 2005)

Apa yang terjadi: Samy Kamkar mempublikasikan profil MySpace yang berisi payload stored XSS. Ketika pengguna lain melihat profil tersebut, payload berjalan di browser mereka, (a) menambahkan Samy sebagai teman, (b) menambahkan frasa “Samy adalah pahlawanku” ke profil mereka, dan (c) mereplikasi dirinya ke halaman profil pengguna tersebut.

Dampak: Worm tersebut menyebar sendiri ke ~1 juta pengguna dalam waktu ~20 jam, memaksa MySpace offline sementara.

Mengapa ini berhasil: MySpace mengizinkan HTML/atribut yang tidak di-escape dalam bidang profil, memungkinkan eksekusi skrip yang tersimpan di browser pengunjung.

Pelajaran / perbaikan: Pengkodean output yang tepat, sanitasi input, penghapusan HTML di bidang profil, dan patching yang cepat. Samy kemudian menghadapi konsekuensi hukum, dan MySpace menerapkan filter.

Istilah Terkait

Langkah Selanjutnya

Siap mengamankan aplikasi Anda? Pilih jalan Anda ke depan.

Bergabunglah dengan 500+ perusahaan yang sudah mengamankan aplikasi mereka dengan Plexicus

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready