Bayangkan sebuah marketplace besar—jutaan pengguna aktif, transaksi tiap detik, dan server super canggih. Tapi siapa sangka, hanya satu form kecil tanpa perlindungan CSRF, cukup untuk membuat sistemnya kacau total.
Ini bukan cerita fiksi. Ini kisah nyata yang jadi pelajaran besar bagi developer dan tim keamanan.
🛍️ Latar Belakang: Marketplace Raksasa
Sebuah perusahaan e-commerce besar di Asia Tenggara (nama disamarkan) memiliki layanan:
-
Jual beli produk
-
Saldo dompet digital
-
Akun admin untuk seller
Semuanya berjalan lancar. Tapi ada satu celah kecil yang luput dari pengawasan…
🧨 Titik Lemah: Form “Update Harga”
Salah satu fitur di dashboard seller adalah form untuk mengubah harga produk:
Masalahnya? Form ini tidak punya CSRF token.
Tidak ada validasi siapa yang mengirim permintaan.
🎯 Serangan Dimulai: Link Jebakan untuk Seller
Seorang penyerang menyamar jadi pembeli dan kirim pesan ke seller:
“Permisi, ini produk Anda tampil aneh di sini: [klik link ini]”
Ternyata link itu berisi halaman berbahaya yang menyisipkan form auto-submit:
Saat seller membuka link tersebut dalam keadaan masih login, browser otomatis:
-
Mengirim permintaan ke server
-
Menyertakan cookie sesi seller
-
Server menerima permintaan dan mengganti harga produk jadi Rp 1
😱 Dampaknya?
-
Ratusan seller mengalami harga produk diubah jadi sangat murah
-
Ribuan pembeli membeli produk dengan harga Rp 1
-
Ribuan transaksi tidak bisa dibatalkan
-
Kerugian ditaksir mencapai ratusan juta rupiah
-
Perusahaan harus menutup sementara fitur seller dashboard
Dan semua itu terjadi hanya karena satu form POST tanpa perlindungan CSRF.
🧩 Kenapa Ini Bisa Terjadi?
Penyebab | Dampaknya |
---|---|
Tidak ada CSRF token | Server tidak bisa validasi permintaan |
Browser kirim cookie otomatis | Permintaan terlihat “sah” |
Seller tertipu klik link | Permintaan palsu dianggap asli |
Tidak ada validasi asal | Server tidak cek Referer atau Origin |
✅ Pelajaran Berharga: Hindari Kesalahan Ini
🔒 1. Gunakan CSRF Token
Tambahkan token unik di semua form dan validasi di server. Laravel, CodeIgniter, dan framework lain sudah punya fitur ini.
🌐 2. Validasi Origin atau Referer
Cek apakah permintaan datang dari situs kamu sendiri.
🍪 3. Gunakan Cookie SameSite=Strict
Agar browser tidak kirim cookie dari situs luar.
🧪 4. Lakukan Security Review
Jangan anggap fitur kecil itu tidak penting. Semua form harus diamankan, sekecil apa pun fungsinya.
🧾 Kesimpulan
Satu form tanpa CSRF protection bisa menyebabkan kerugian besar dan hilangnya kepercayaan pengguna.
Keamanan itu bukan hanya soal enkripsi atau firewall —
Tapi juga soal hal-hal kecil yang sering disepelekan, seperti CSRF token di form HTML.
Penulias : Muhammad Aditya Alkhawarizmi
Nim : 23156201023
jurusan : Sistem Komputer