Ketika membahas cara melindungi aplikasi dari serangan CSRF (Cross-Site Request Forgery), dua metode yang paling sering dipakai adalah:

  • Double Submit Cookie

  • Synchronizer Token

Kedua metode ini ibarat dua strategi dalam “permainan token” untuk menjaga keamanan aplikasi web. Tapi apa bedanya? Mana yang lebih baik? Yuk, kita bahas dengan bahasa sederhana!


🎯 Apa Tujuan Token CSRF?

Token CSRF adalah nilai unik dan acak yang dikirim ke browser pengguna untuk memastikan bahwa permintaan yang masuk benar-benar dari pengguna yang sah, bukan dari penyerang.

Cara kerjanya, server akan membandingkan token yang dikirim oleh klien dengan token yang dia simpan untuk memastikan permintaan valid.


🥇 Double Submit Cookie: Cara Main yang Simpel

Cara Kerja:

  1. Server mengirim cookie CSRF token ke browser.

  2. Saat pengguna mengirim permintaan POST/PUT/DELETE, browser mengirim:

    • Cookie CSRF token (otomatis)

    • Token yang sama di dalam body atau header permintaan.

  3. Server membandingkan nilai token di cookie dan nilai token yang dikirim dalam permintaan.

  4. Jika cocok, permintaan diterima. Jika tidak, ditolak.

Kelebihan:

  • Tidak perlu menyimpan token di server (stateless).

  • Lebih mudah diterapkan di aplikasi yang skalanya besar.

Kekurangan:

  • Jika cookie bisa dibaca oleh script jahat (XSS), token bisa dicuri.

  • Membutuhkan mekanisme untuk memastikan cookie tidak bisa diakses sembarangan.


🥈 Synchronizer Token: Cara Main yang Ketat

Cara Kerja:

  1. Server membuat token CSRF unik dan menyimpannya di sesi server (session).

  2. Token ini juga disisipkan ke setiap form atau permintaan API yang sensitif.

  3. Saat permintaan masuk, server mencocokkan token yang diterima dengan token yang ada di sesi.

  4. Jika cocok, permintaan diterima.

Kelebihan:

  • Lebih aman karena token disimpan di server.

  • Sulit bagi penyerang untuk menebak token yang valid.

Kekurangan:

  • Membutuhkan penyimpanan sesi (stateful).

  • Bisa jadi kurang cocok untuk aplikasi yang sangat skalabel karena harus simpan banyak sesi.


⚔️ Perbandingan Singkat

Fitur Double Submit Cookie Synchronizer Token
Simpan Token Di cookie (client-side) Di server (session)
Bebas sesi (stateless) Ya Tidak
Kemudahan Implementasi Lebih mudah Lebih rumit
Keamanan Rentan jika XSS menyerang cookie Lebih aman karena token di server
Skalabilitas Lebih cocok untuk sistem besar Bisa jadi tantangan di sistem besar

🎮 Mana yang Harus Dipilih?

  • Jika aplikasi kamu stateless atau menggunakan API modern, Double Submit Cookie bisa jadi pilihan praktis.

  • Jika kamu punya aplikasi dengan session management dan ingin keamanan ekstra, Synchronizer Token lebih aman.

Namun, yang terpenting adalah:

Gunakan salah satu metode ini dengan benar, dan jangan lupa proteksi dari XSS!


🧾 Kesimpulan

Token CSRF adalah senjata utama melawan serangan CSRF. Baik Double Submit Cookie maupun Synchronizer Token punya kelebihan dan kekurangan masing-masing.

Pilih strategi yang paling cocok dengan kebutuhan dan arsitektur aplikasi kamu, dan selalu pastikan aplikasi kamu terlindungi dari serangan lain seperti XSS.

Penulias : Muhammad Aditya Alkhawarizmi

Nim : 23156201023

jurusan : Sistem Komputer