Pernah dengar kabar sebuah situs kena "data breach" dan data ribuan penggunanya bocor ke internet? Kadang penyebabnya bukan sistem yang rumit banget, tapi cuma satu celah kecil di kode PHP yang lupa "disaring" dengan benar sebelum data itu dipakai atau ditampilkan.
Buat kamu yang lagi belajar PHP, ini penting banget dipahami sejak awal. Karena kebocoran data pengguna itu bukan cuma soal password lemah, tapi seringkali soal kebiasaan coding yang keliru — kebiasaan yang kelihatannya sepele tapi dampaknya besar.
Coba bayangin resepsionis di kantor. Setiap tamu yang datang seharusnya dicek dulu identitasnya sebelum dikasih akses masuk ke ruangan dalam. Kalau resepsionisnya asal percaya sama siapa aja yang bilang "saya karyawan kok", bahaya kan?
Nah, kode PHP yang menerima data dari pengguna — misalnya lewat form, URL, atau API — itu ibarat resepsionis tadi. Kalau data yang masuk langsung dipakai tanpa dicek dan dibersihkan dulu, siapa aja bisa "menyamar" jadi orang lain atau menyelipkan perintah berbahaya.
Misalnya ada website dengan fitur lihat profil pengguna lewat URL seperti ini:
profil.php?id=25
Kalau kode di belakangnya cuma seperti ini:
$id = $_GET['id'];
$query = "SELECT * FROM users WHERE id = $id";
Maka orang iseng bisa saja mengganti angka 25 dengan perintah lain yang membuat database "curhat" dan mengeluarkan semua data pengguna, bukan cuma satu orang. Teknik ini dikenal dengan istilah SQL Injection — menyisipkan perintah database lewat input yang tidak difilter.
Ini bukan hal baru, tapi masih sering terjadi. Menurut laporan OWASP (organisasi keamanan web internasional), injection masih masuk dalam daftar risiko keamanan aplikasi web paling umum selama bertahun-tahun terakhir.
Bukan karena PHP-nya jelek, tapi karena banyak pemula belajar coding dengan fokus "yang penting jalan dulu". Validasi dan filter data sering dianggap langkah tambahan yang bisa "dikerjakan nanti" — padahal justru itu yang bikin aplikasi aman dari awal.
Beberapa kebiasaan yang sering bikin data pengguna rawan bocor:
Kabar baiknya, mencegah kebocoran data nggak selalu butuh teknik super canggih. Beberapa kebiasaan dasar berikut ini sudah bisa mengurangi risiko secara signifikan.
Daripada menggabungkan input langsung ke query, gunakan cara yang lebih aman seperti ini:
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$id]);
Dengan cara ini, data yang dimasukkan pengguna diperlakukan murni sebagai "data", bukan sebagai "perintah" yang bisa dieksekusi database.
Setiap data yang datang dari pengguna — baik dari form, URL, atau API — sebaiknya dicek dulu sebelum dipakai. Misalnya memastikan ID berupa angka, email sesuai format, dan sebagainya.
PHP sudah menyediakan fungsi password_hash() untuk mengacak password sebelum disimpan, dan password_verify() untuk mengeceknya saat login. Jangan pernah simpan password apa adanya di database.
Banyak developer pemula menganggap keamanan itu seperti aksesoris yang bisa ditambahkan belakangan. Padahal, keamanan data pengguna itu lebih mirip fondasi rumah — kalau dari awal rapuh, sekuat apapun temboknya nanti tetap berisiko roboh.
Kebiasaan menulis kode yang aman itu ibarat mencuci tangan sebelum makan: kelihatan sepele, tapi efeknya besar untuk mencegah "penyakit" yang jauh lebih merepotkan di kemudian hari.
Coba cek lagi kode PHP yang sedang kamu buat sekarang. Apakah ada input dari pengguna yang langsung dipakai tanpa validasi? Apakah password disimpan dalam bentuk asli tanpa diacak?
Kalau iya, itu bukan berarti kamu developer yang buruk — itu tandanya kamu sedang belajar, dan sekaranglah waktu yang tepat untuk membiasakan diri menulis kode yang lebih aman. Karena pada akhirnya, data yang kamu lindungi bukan cuma milik aplikasi, tapi milik orang-orang yang mempercayakan datanya ke sistem buatanmu.
Download semua project premium tanpa batas mulai Rp99.000.