Formulir (form) di website itu biasanya tampak biasa dan tidak berbahaya—seperti form login, ubah data, atau kirim pesan. Tapi tahukah kamu, form biasa ini bisa berubah jadi senjata berbahaya di tangan penyerang?
Itulah yang terjadi dalam serangan yang disebut CSRF (Cross-Site Request Forgery).
🔍 Apa Itu CSRF?
CSRF adalah jenis serangan siber yang membuat pengguna secara tidak sadar melakukan aksi penting, seperti:
-
Transfer uang
-
Ubah password
-
Hapus akun
…hanya karena mereka masih login di website dan membuka halaman berbahaya.
🧠 Bagaimana Form Bisa Jadi Senjata?
Bayangkan kamu login ke situs bank.
Lalu kamu mengunjungi blog atau forum yang kelihatannya biasa saja. Tapi di balik layar, blog itu menyisipkan form tersembunyi seperti ini:
Karena kamu masih login, browser kamu ikut mengirim cookie login ke situs bank. Akibatnya, permintaan ini dianggap sah oleh server.
Hasilnya: uang terkirim tanpa kamu tahu. 😱
🔄 Evolusi CSRF: Dari Sederhana ke Canggih
✅ Dulu: CSRF Sederhana
-
Hanya pakai form tersembunyi
-
Mengandalkan browser kirim cookie otomatis
-
Targetnya: situs yang pakai form biasa tanpa proteksi
⚠️ Sekarang: CSRF Lebih Canggih
-
Bisa digabung dengan XSS (Cross-Site Scripting)
-
Menyasar API modern, termasuk aplikasi mobile
-
Mengecoh pengguna dengan tampilan meyakinkan
-
Digunakan untuk serangan besar: ambil alih akun admin, ubah email/password, atau pencurian data massal
🔒 Kenapa Bisa Terjadi?
Karena:
-
Browser selalu kirim cookie otomatis ke situs yang sama
-
Website tidak mengecek apakah permintaan itu asli atau tidak
-
Form di website tidak punya pelindung khusus (seperti CSRF token)
🛡️ Cara Melindungi Website dari CSRF
Supaya form kamu tidak berubah jadi senjata, berikut langkah-langkah perlindungannya:
-
Gunakan CSRF Token
-
Token ini adalah kode acak unik untuk tiap form
-
Hanya form sah yang punya token bisa diterima server
-
-
Aktifkan SameSite Cookie
-
Atur cookie jadi
SameSite=Lax
atauStrict
-
Browser tidak akan mengirim cookie dari luar situs
-
-
Gunakan metode POST untuk aksi penting
-
Jangan gunakan GET untuk hal seperti menghapus atau mengubah data
-
-
Cek Header Referer atau Origin
-
Pastikan permintaan berasal dari domain sendiri
-
-
Pakai Framework yang Sudah Aman
-
Laravel, Django, dan framework modern sudah punya proteksi CSRF bawaan
-
🧾 Kesimpulan
Formulir yang tampak sederhana bisa berubah menjadi senjata berbahaya jika tidak dilindungi. Inilah kekuatan dan bahaya dari CSRF—serangan yang memanfaatkan kepercayaan situs pada pengguna yang masih login.
Penulis : Muhammad Aditya Alkhawarizmi
Nim : 23156291923
Jurusan : Sistem Komputer