CSRF di Laravel Mekanisme dan Implementasi untuk Aplikasi Aman Assalamualaikum teman teman berjumpa lagi dengan saya di dailamiahmad.my.id kali ini saya akan melanjutkan bahasan tentang laravel yaitu tentang CSRF di Laravel Mekanisme dan Implementasi untuk Aplikasi Aman . Sebelum berlanjut ke pembahasannya teman-teman bisa lihat artikel lainnya tentang laravel di sini ya.
- Panduan Lengkap Integrasi DataTables dengan Bootstrap 5 untuk Tampilan Tabel Interaktif dan Responsif
- Panduan Lengkap View Laravel
- Mengenal Model Laravel Fondasi Interaksi Data dalam Aplikasi Web
- Mengenal Controller di Laravel Fondasi Logika Aplikasi Berbasis MVC
- Memahami Routing dalam Laravel: Konsep, Jenis, dan Penerapan
- Blade Templating Laravel: Cara Praktis Bikin Template Dinamis
- Integrasi Template Bootstrap ke dalam Laravel
- Database Migration dan Seeder: Dasar, Manfaat, dan Implementasi
Pendahuluan
Keamanan aplikasi web adalah fondasi yang menentukan keandalan sebuah sistem. Tanpa lapisan proteksi yang tepat, data sensitif pengguna dapat terekspos dan aksi berbahaya bisa terjadi tanpa disadari. Salah satu ancaman klasik namun masih sering ditemukan adalah Cross‑Site Request Forgery (CSRF). Serangan ini mengeksploitasi fakta bahwa browser secara otomatis membawa kredensial seperti cookie sesi ketika mengirim permintaan ke domain yang dipercaya.
![]() |
CSRF di Laravel Mekanisme dan Implementasi untuk Aplikasi Aman |
Laravel, sebagai framework PHP yang matang dan berorientasi pada developer experience, menyediakan perlindungan CSRF bawaan yang mudah digunakan sekaligus fleksibel. Artikel ini mengulas konsep CSRF, cara kerja perlindungannya di Laravel, langkah implementasi pada form dan AJAX, pengecualian khusus seperti webhook, hingga praktik terbaik yang dapat Anda terapkan dalam proyek produksi.
Apa Itu CSRF dan Bagaimana Serangannya Terjadi
CSRF adalah teknik penyerangan yang memaksa pengguna yang telah diautentikasi untuk melakukan aksi yang tidak ia maksudkan pada aplikasi target. Penyerang biasanya menipu korban agar membuka halaman pihak ketiga yang menyelipkan form atau skrip tersembunyi. Karena sesi korban masih aktif, server menganggap permintaan tersebut datang dari pengguna yang sah. Contoh skenario: pengguna sedang login ke aplikasi keuangan, lalu mengunjungi situs lain yang menyisipkan form POST ke endpoint transfer dana. Tanpa verifikasi tambahan, permintaan itu bisa diproses. Inti masalahnya adalah server tidak punya cara membedakan antara permintaan yang benar‑benar dibuat oleh pengguna melalui antarmuka aplikasi, dan permintaan yang dipicu dari situs asing.
Bagaimana Laravel Melindungi dari CSRF
Laravel memitigasi risiko ini menggunakan token CSRF string acak yang unik per sesi dan sulit ditebak. Token tersebut disimpan di sisi server (bersama data sesi) dan harus dikirimkan kembali oleh klien pada setiap permintaan yang mengubah state (POST, PUT, PATCH, DELETE) di rute yang berada dalam middleware group ‘web’. Validasi token ditangani oleh middleware VerifyCsrfToken. Ketika token pada request tidak ada atau tidak cocok dengan token sesi, Laravel menolak permintaan dengan melempar pengecualian yang umumnya berujung pada respons 419 Page Expired. Dengan pendekatan ini, hanya interaksi yang secara eksplisit membawa token yang dianggap sah membedakan aksi asli pengguna dari request palsu yang dipicu pihak ketiga.
Implementasi pada Form Blade
Implementasi pada form Blade sangat sederhana. Tambahkan direktif @csrf di dalam elemen <form>. Direktif tersebut akan dirender menjadi input tersembunyi bernama _token yang membawa nilai token sesi. Selama token dikirim, middleware akan menganggap permintaan valid. Gunakan metode POST untuk aksi yang mengubah data, dan sertakan juga mekanisme validasi server‑side lain seperti Laravel Validation agar permintaan tidak hanya lolos CSRF tetapi juga memenuhi aturan bisnis.