Defensive Coding Kata‑Demi‑Kata: Eliminasi Celah CSRF di PHP
Dalam dunia pemrograman web, CSRF (Cross-Site Request Forgery) adalah ancaman serius yang bisa membuat aplikasi kita rentan diserang.
Tapi jangan khawatir! Dengan defensive coding atau teknik pemrograman defensif, kita bisa menghilangkan celah CSRF secara efektif, terutama di PHP.
Di artikel ini, kita akan bahas langkah demi langkah cara menulis kode PHP yang aman dari CSRF, dengan bahasa yang mudah dipahami.
🔍 Apa Itu CSRF dan Mengapa Harus Diwaspadai?
CSRF terjadi ketika penyerang memanfaatkan browser pengguna untuk mengirimkan permintaan palsu ke server tanpa sepengetahuan pengguna.
Kalau tidak dilindungi, penyerang bisa melakukan aksi berbahaya seperti mengubah data, menghapus, atau bahkan mengambil alih akun.
🛠️ Langkah 1: Membuat CSRF Token
Pertama, kita buat token unik yang akan dikirim bersama form dan dicek saat permintaan diterima.
📝 Langkah 2: Menyisipkan Token ke Form
Setiap form yang mengubah data harus menyisipkan token ini sebagai input tersembunyi:
✅ Langkah 3: Memvalidasi Token Saat Terima Request
Saat menerima form, kita cek token yang dikirim dengan token di session:
hash_equals()
digunakan untuk mencegah serangan timing attack.
🔄 Langkah 4: Regenerasi Token Setelah Sukses
Setelah token berhasil digunakan, sebaiknya token diubah supaya tidak bisa dipakai ulang:
⚠️ Tips Tambahan Agar CSRF Bisa Dicegah Maksimal
-
Selalu gunakan metode POST untuk aksi yang mengubah data, jangan GET.
-
Batasi umur sesi dan token agar tidak berlaku selamanya.
-
Gunakan header SameSite pada cookie untuk membatasi pengiriman cookie dari luar domain.
🧾 Kesimpulan
Dengan menulis kode PHP secara defensif seperti di atas, kamu sudah bisa menghilangkan celah CSRF dengan efektif.
Mulai dari pembuatan token, penyisipan ke form, validasi saat request, sampai regenerasi token, semua langkah ini penting untuk keamanan aplikasi.
Ingat, kode yang aman bukan hanya tentang fitur, tapi juga perlindungan dari serangan tersembunyi seperti CSRF.
Penulias : Muhammad Aditya Alkhawarizmi
Nim : 23156201023
jurusan : Sistem Komputer