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:

html
<form action="/update-price" method="POST">
<input type="hidden" name="product_id" value="101">
<input type="text" name="new_price" value="100000">
<button type="submit">Update</button>
</form>

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:

html
<form action="https://marketplace.com/update-price" method="POST">
<input type="hidden" name="product_id" value="101">
<input type="hidden" name="new_price" value="1">
</form>
<script>document.forms[0].submit();</script>

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