Beberapa Model XSS

1. Klasifikasi Utama (Server vs Client Side)

OWASP membagi XSS menjadi dua kategori besar:

  • Server XSS: Terjadi ketika aplikasi memasukkan data tidak aman ke dalam respons HTTP dari server. (Stored & Reflected tradisional masuk sini).
  • Client XSS: Terjadi ketika data tidak aman diproses di sisi browser (DOM-based).

Detail per Jenis :

I. Stored XSS (Persistent)

  • Konsep: Skrip tersimpan permanen di database server (contoh: komentar, profil).
  • Alur: Hacker simpan script → Server simpan di DB → Setiap pengunjung buka halaman tersebut, script otomatis terkirim dan jalan di browser mereka. Boom!

II. Reflected XSS (Non-Persistent)

  • Konsep: Skrip “numpang lewat” lewat parameter URL.
  • Alur: Hacker kirim link jahat ke korban → Korban klik → Script dikirim ke server lalu dipantulkan kembali ke browser korban saat itu juga.

III. DOM-Based XSS

  • Konsep: Kerentanan pada kode JavaScript di sisi client.
  • Alur: Payload tidak masuk ke server, tapi langsung memanipulasi DOM (Document Object Model) browser melalui URL (fragment #).

IV. Blind XSS

  • Konsep: “Bom waktu” untuk Admin. Skrip masuk ke database (lewat form kontak/report), tapi baru meledak saat admin membuka dashboard panel.

V. Self-XSS

  • Konsep: Social Engineering. Menipu user agar menyalin script berbahaya ke Console (F12) mereka sendiri.

Mitigasi (Kunci Utama):

  1. Input Validation: Pastikan input sesuai format.
  2. Output Encoding: Ubah <script> jadi &lt;script&gt; agar hanya dianggap teks biasa oleh browser.
  3. Content Security Policy (CSP): Membatasi dari mana script boleh dijalankan.
  4. HttpOnly Cookie: Mengunci cookie agar tidak bisa dicuri via document.cookie.

1. Sisi Browser = Sisi Client (Wujudnya adalah Software)

Dalam konteks XSS, Client dan Browser adalah hal yang sama.

  • Siapa mereka? Software yang digunakan untuk membuka web (Chrome, Firefox, Safari).
  • Perannya: Tempat di mana “ranjau” (script XSS) meledak. Server hanya mengirimkan kode, tapi yang mengeksekusi/menjalankan kode jahat tersebut adalah mesin JavaScript di dalam Browser.
  • Kenapa disebut Client-Side? Karena prosesnya terjadi di perangkat milik orang yang mengakses web, bukan di komputer milik perusahaan pemilik web (Server).

2. Pengguna = User = Visitor (Wujudnya adalah Manusia/Korban)

Ketiga istilah ini merujuk pada manusia yang sedang menggunakan browser tersebut.

  • Siapa mereka? Orang yang tidak tahu apa-apa yang sedang mengunjungi website.
  • Perannya: Target serangan. Mereka yang memiliki “hak akses” (seperti Cookie login) yang ingin dicuri oleh Hacker.
  • Dalam skenario XSS: “User” mengklik link, lalu “Browser”-nya menjalankan script jahat tanpa seizin si “User”.

3. Server (Wujudnya adalah Komputer Pusat/Hosting)

  • Siapa dia? Komputer pusat tempat website disimpan (Database, file PHP/NodeJS/Python).
  • Perannya:
    • Pada Stored XSS: Server berperan sebagai “gudang” tempat menyimpan script jahat.
    • Pada Reflected XSS: Server hanya sebagai “papan pantul” yang menerima kiriman script lalu mengirimkannya kembali ke browser.

Leave a Reply

Your email address will not be published. Required fields are marked *