Biasanya, serangan CSRF (Cross-Site Request Forgery) dan XSS (Cross-Site Scripting) dianggap sebagai dua hal yang terpisah.
Tapi tahukah kamu? Ketika dua serangan ini digabung, dampaknya bisa jauh lebih berbahaya.
Inilah yang disebut dengan CSRF Chain Attack โ€” serangan ganda yang saling mendukung.

Yuk, kita bahas dengan bahasa yang sederhana dan mudah dipahami!


๐Ÿง  Pengertian Singkat

  • CSRF = Menipu browser pengguna agar mengirim permintaan berbahaya ke server tanpa sepengetahuannya.

  • XSS = Menyuntikkan skrip berbahaya ke dalam halaman web yang akan dijalankan oleh browser korban.

Kalau CSRF bisa mengontrol server,
dan XSS bisa mengontrol browser,
maka jika digabung, penyerang bisa mengontrol dua sisi sekaligus.


๐ŸŽฏ Ilustrasi Sederhana

Bayangkan ada aplikasi web toko online. Di sana ada dua celah:

  1. Endpoint ubah profil tidak memakai CSRF token

  2. Kolom komentar punya celah XSS (tidak memfilter <script>)

Penyerang bisa:

  1. Gunakan XSS untuk menyisipkan JavaScript di komentar.

  2. JavaScript itu akan:

    • Mengambil cookie atau token

    • Mengirim permintaan CSRF ke endpoint yang tidak aman

Hasilnya?

  • Akun korban bisa diubah, diambil alih, atau digunakan untuk transaksi tanpa izin.


๐Ÿ”ฅ Contoh Serangan CSRF + XSS

Langkah 1: Penyerang Sisipkan Komentar Jahat

html
<script>
fetch('https://toko.com/ubah-password', {
method: 'POST',
credentials: 'include',
body: new URLSearchParams({
new_password: 'hacked123'
})
});
</script>

Langkah 2: Pengguna Buka Halaman Komentar

  • Browser otomatis menjalankan JavaScript tadi (karena XSS).

  • Permintaan POST dikirim ke server, membawa cookie login korban.

  • Server tidak punya perlindungan CSRF โ†’ menganggap permintaan sah.

  • Password pengguna langsung berubah!


๐Ÿงจ Kenapa Gabungan Ini Berbahaya?

Efek Gabungan Penjelasan
XSS mencuri data Bisa ambil token, cookie, atau info sensitif
XSS mengirim CSRF otomatis Tanpa klik, tanpa aksi pengguna
CSRF mengubah data Melakukan aksi berbahaya di server (tanpa izin)
Serangan sulit dideteksi Tidak terlihat jelas oleh pengguna

๐Ÿ›ก๏ธ Cara Mencegah CSRF Chain

โœ… 1. Gunakan CSRF Token di Semua Aksi Sensitif

Pastikan semua permintaan POST, PUT, DELETE harus menyertakan token unik, dan server memverifikasinya.

โœ… 2. Filter Input untuk Mencegah XSS

Jangan izinkan tag <script>, onerror, onclick, dan atribut JavaScript masuk ke halaman.

Gunakan library seperti:

  • DOMPurify (untuk sanitasi HTML)

  • HTMLPurifier (di PHP)

โœ… 3. Gunakan Cookie SameSite=Strict

Agar cookie tidak terkirim saat permintaan berasal dari situs asing.

http
Set-Cookie: session=abc123; SameSite=Strict; Secure

โœ… 4. Tambahkan Header Keamanan

Gunakan:

  • Content-Security-Policy untuk membatasi JavaScript

  • X-Frame-Options: DENY untuk cegah clickjacking


๐Ÿ”„ Rangkuman

Masalah Solusi Aman
Form tanpa CSRF Tambahkan token di form dan validasi server
Input bisa disusupi Filter/sanitasi input untuk cegah XSS
Cookie dikirim bebas Gunakan SameSite dan Secure
JavaScript bebas Batasi dengan Content-Security-Policy

๐Ÿงพ Kesimpulan

Serangan CSRF Chain adalah kombinasi mematikan antara XSS dan CSRF.
Keduanya saling mendukung dan bisa menyebabkan:

๐Ÿ” Data dicuri + ๐ŸŽฏ Aksi dilakukan tanpa izin

Untuk mencegahnya:

  • Lindungi form dengan token

  • Filter input pengguna

  • Atur cookie dan header dengan benar

Jangan hanya fokus pada satu jenis serangan โ€” pikirkan bagaimana serangan bisa digabungkan.
Karena di dunia nyata, penyerang selalu kreatif.

Penulias : Muhammad Aditya Alkhawarizmi

Nim : 23156201023

jurusan : Sistem Komputer