CSRF (Cross-Site Request Forgery) adalah serangan yang bisa bikin aplikasi kamu bermasalah serius. Untungnya, kalau kamu pakai Laravel, framework PHP populer, kamu sudah punya banyak alat bawaan untuk melindungi aplikasi dari CSRF.
Yuk, kita lihat bagaimana cara menghajar CSRF di Laravel, langkah demi langkah, dengan bahasa yang sederhana!
🔍 Apa Itu CSRF?
Sederhananya, CSRF adalah trik jahat yang bikin browser pengguna mengirim permintaan palsu ke server—padahal si pengguna tidak bermaksud begitu. Kalau berhasil, penyerang bisa melakukan aksi berbahaya seperti mengubah data atau transaksi tanpa sepengetahuan korban.
🚀 Langkah 1: Pahami Middleware CSRF Laravel
Laravel secara default sudah menyediakan middleware CSRF protection bernama:
Middleware ini otomatis:
-
Membuat token unik untuk tiap sesi pengguna
-
Memeriksa token yang dikirim dalam permintaan POST, PUT, DELETE
-
Menolak permintaan kalau token tidak valid
📝 Langkah 2: Pastikan Form Punya Token CSRF
Saat membuat form di Blade (template engine Laravel), selalu sertakan:
Ini akan menyisipkan token CSRF otomatis di form kamu sebagai input tersembunyi.
Contoh form sederhana:
Kalau kamu lupa menambahkan @csrf
, Laravel akan tolak permintaan form dengan error 419 (Page Expired).
⚙️ Langkah 3: CSRF untuk AJAX Request
Kalau kamu pakai AJAX (fetch atau axios) untuk kirim data, token CSRF harus ikut dikirim di header.
Biasanya, kamu bisa dapat token CSRF dari meta tag di Blade:
Lalu di JavaScript:
🚫 Langkah 4: Kecualikan Route Jika Perlu
Kadang kamu punya endpoint API yang tidak butuh CSRF, misalnya endpoint untuk webhook atau API publik.
Kamu bisa mengecualikan route tertentu di middleware CSRF di:
Tapi hati-hati! Jangan kecualikan route yang rawan diserang.
✅ Langkah 5: Testing dan Verifikasi
Setelah konfigurasi:
-
Coba kirim form dengan
@csrf
, harus berhasil -
Coba kirim form tanpa token, harus gagal (error 419)
-
Cek juga request AJAX yang mengirim header
X-CSRF-TOKEN
Kalau semuanya berjalan sesuai harapan, aplikasi kamu sudah terlindungi dari CSRF!
🧾 Kesimpulan
Laravel sudah sangat membantu melindungi aplikasi kamu dari serangan CSRF dengan fitur bawaannya.
Yang perlu kamu lakukan hanya:
-
Selalu sertakan
@csrf
di form -
Kirim token CSRF di header untuk AJAX
-
Hati-hati saat mengecualikan route dari proteksi CSRF
Dengan langkah-langkah ini, kamu sudah menghajar CSRF dan membuat aplikasi lebih aman!
Penulias : Muhammad Aditya Alkhawarizmi
Nim : 23156201023
jurusan : Sistem Komputer