Di dunia keamanan website, ada dua istilah yang sering dibicarakan: CSRF dan JWT. Tapi banyak yang masih bingung, apa bedanya? Dan pertanyaan yang paling penting: mana yang lebih kuat terhadap serangan?
Mari kita bahas satu per satu dengan cara yang mudah dipahami.
🔍 Apa Itu CSRF?
CSRF (Cross-Site Request Forgery) adalah jenis serangan di mana penyerang membuat korban melakukan sesuatu di website tanpa sadar. Biasanya terjadi karena pengguna masih login ke situs tertentu.
Contoh sederhananya:
-
Kamu login ke situs bank.
-
Kamu buka situs lain, lalu klik link jebakan.
-
Tanpa sadar, kamu sudah mengirim uang ke orang lain karena browser kamu ikut mengirim cookie login ke situs bank itu.
🔐 Apa Itu JWT?
JWT (JSON Web Token) adalah cara untuk menyimpan informasi login pengguna dalam bentuk token digital. Biasanya, token ini dikirim melalui header dalam setiap request, bukan melalui cookie.
JWT banyak digunakan di aplikasi modern (seperti React, Vue, atau aplikasi mobile), karena:
-
Mudah digunakan
-
Bisa disimpan di browser (localStorage/sessionStorage)
-
Tidak otomatis dikirim oleh browser seperti cookie
⚔️ CSRF vs. JWT: Mana yang Lebih Aman?
Sekarang mari kita bandingkan dari sisi keamanan terhadap CSRF:
Aspek | Menggunakan Cookie (Rawan CSRF) | Menggunakan JWT (Lebih Aman) |
---|---|---|
Token dikirim otomatis | ✅ Ya, oleh browser | ❌ Tidak, harus dikirim manual |
Rentan serangan CSRF | ✅ Ya, sangat rentan | ❌ Tidak, karena tidak otomatis |
Perlu perlindungan tambahan | ✅ Harus pakai CSRF Token | ❌ Tidak wajib, tapi tetap bisa ditambah |
Umum digunakan di | Website klasik (PHP, Laravel) | Aplikasi modern (SPA, Mobile App) |
✅ Kesimpulan Sementara:
-
CSRF terjadi karena browser mengirim cookie otomatis.
-
JWT lebih aman dari CSRF karena tidak dikirim otomatis, harus disisipkan manual lewat kode.
❗ Tapi Tunggu Dulu…
JWT tidak sepenuhnya bebas risiko, karena:
-
Kalau disimpan di localStorage, bisa dicuri lewat XSS (Cross-Site Scripting).
-
Jika token bocor, penyerang bisa menggunakannya untuk login sebagai kamu.
-
Token kadaluarsa atau tidak diatur dengan baik bisa menyebabkan celah keamanan.
Jadi, JWT aman dari CSRF, tapi harus tetap dilindungi dari serangan lain seperti XSS.
🔒 Tips Tambahan agar Lebih Aman
-
Jangan simpan JWT di localStorage kalau aplikasi kamu rawan XSS.
-
Gunakan Secure HTTP Only Cookie jika tetap ingin pakai cookie.
-
Selalu pakai HTTPS untuk semua komunikasi.
-
Tambahkan Validasi CSRF Token jika menggunakan cookie biasa.
-
Gunakan SameSite Cookie Policy (
SameSite=Strict
atauLax
).
🧠 Kesimpulan Akhir
JWT lebih tahan terhadap serangan CSRF, karena tidak dikirim otomatis oleh browser. Tapi bukan berarti sepenuhnya aman—kita tetap harus waspada terhadap serangan lain seperti XSS.
Jadi, mau pakai cookie atau JWT? Jawabannya tergantung kebutuhan aplikasi kamu. Yang penting: pahami risikonya dan pastikan sistem kamu terlindungi.
Penulis : Muhammad Aditya Alkhawarizmi
Nim : 23156201023
Jurusan : Sitem komputer