5 Kesalahan Developer yang Membuka Pintu CSRF Lebar‑Lebar

CSRF (Cross-Site Request Forgery) adalah salah satu serangan paling sering terjadi di aplikasi web. Masalahnya, banyak developer secara tidak sadar justru membuka jalan bagi CSRF untuk masuk.

Padahal, hanya karena satu kesalahan kecil, penyerang bisa mencuri data, mengubah informasi, bahkan mengirim uang dari akun pengguna—semua tanpa diketahui!

Nah, berikut 5 kesalahan umum developer yang sering terjadi dan bisa membuat aplikasi rentan terhadap serangan CSRF:


1️⃣ Tidak Menggunakan CSRF Token

❌ Kesalahan:

Banyak form di aplikasi web tidak dilengkapi token CSRF, terutama saat membuat form manual (tanpa framework).

⚠️ Akibatnya:

Penyerang bisa membuat form palsu yang mengirim data ke server. Karena browser otomatis mengirim cookie login, server akan menganggap permintaan palsu itu sah.

✅ Solusi:

Selalu tambahkan token CSRF di setiap form, dan verifikasi token di server.

Contoh:

html
<input type="hidden" name="csrf_token" value="abc123">

2️⃣ Menyimpan Token di Tempat yang Mudah Diakses

❌ Kesalahan:

Menyimpan token di localStorage atau window.token.

⚠️ Akibatnya:

Kalau ada celah XSS (Cross-Site Scripting), penyerang bisa membaca token dan menggunakannya untuk menyerang sistem.

✅ Solusi:

Simpan token di cookie HttpOnly (tidak bisa dibaca oleh JavaScript) dan tambahkan proteksi seperti SameSite dan Secure.


3️⃣ Pakai Metode GET untuk Aksi Penting

❌ Kesalahan:

Menggunakan GET untuk aksi seperti:

  • Hapus data

  • Transfer uang

  • Ubah password

Contoh URL:

bash
https://aplikasiku.com/delete?id=99

⚠️ Akibatnya:

Penyerang bisa menyisipkan URL ini ke dalam <img src="...">, dan browser akan menjalankan tanpa sepengetahuan pengguna.

✅ Solusi:

Gunakan POST, PUT, atau DELETE untuk aksi penting, bukan GET.


4️⃣ Tidak Mengatur SameSite pada Cookie

❌ Kesalahan:

Membuat cookie login tanpa mengatur SameSite.

⚠️ Akibatnya:

Browser akan mengirim cookie ke server walaupun permintaan berasal dari situs luar, dan ini yang dimanfaatkan oleh CSRF.

✅ Solusi:

Gunakan SameSite=Strict atau SameSite=Lax saat membuat cookie.

Contoh:

http
Set-Cookie: sessionid=xyz; SameSite=Strict; Secure; HttpOnly

5️⃣ Tidak Validasi Header Referer atau Origin

❌ Kesalahan:

Server menerima semua permintaan tanpa mengecek darimana asalnya.

⚠️ Akibatnya:

Permintaan dari situs jahat bisa tetap diproses karena server tidak tahu itu datang dari luar.

✅ Solusi:

Tambahkan pengecekan:

php
if ($_SERVER['HTTP_ORIGIN'] !== 'https://aplikasiku.com') {
exit('Permintaan tidak valid');
}

🧾 Kesimpulan

Banyak serangan CSRF terjadi bukan karena sistem canggih penyerang, tapi karena kesalahan kecil dari developer. Dengan menghindari 5 kesalahan di atas, kamu sudah menutup pintu besar yang sering dimanfaatkan oleh penyerang.

Kesalahan Developer Solusi Aman
Tidak pakai CSRF token Tambahkan token unik dan validasi server
Token disimpan sembarangan Gunakan cookie HttpOnly + SameSite
Pakai GET untuk aksi penting Gunakan POST/PUT/DELETE
Cookie tanpa SameSite Tambahkan SameSite=Strict
Tidak cek Referer/Origin Validasi domain asal permintaan

Ingat: CSRF sering menyerang diam-diam. Tapi dengan langkah sederhana, kita bisa mencegahnya sejak awal. 💪

 

Penulias : Muhammad Aditya Alkhawarizmi

Nim : 23156201023

jurusan : Sistem Komputer