Keamanan aplikasi web merupakan fondasi utama yang tidak boleh ditawar ketika Anda membangun situs berbasis PHP. Tanpa perlindungan yang tepat, celah kecil pada formulir login, pencarian, maupun fitur unggah gambar dapat dimanfaatkan oleh pihak tidak bertanggung jawab.
1. Gunakan PDO Prepared Statements untuk Semua Query Database
Jangan pernah menggabungkan variabel input pengguna secara langsung ke dalam string SQL. Dengan menggunakan PDO::prepare() dan menonaktifkan ATTR_EMULATE_PREPARES, parameter input akan dipisahkan sepenuhnya dari perintah SQL sehingga serangan SQL Injection dapat dicegah 100%.
2. Sanitasi Output HTML untuk Mencegah XSS
Setiap data yang ditampilkan kembali ke layar peramban wajib melalui fungsi htmlspecialchars($data, ENT_QUOTES, 'UTF-8'). Untuk konten artikel yang membutuhkan format teks kaya, gunakan pembersih tag berbasis daftar putih (allowlist sanitizer) yang memblokir tag <script> dan atribut event JavaScript seperti onerror atau onload.
3. Terapkan Token CSRF pada Setiap Form POST
Serangan Cross-Site Request Forgery (CSRF) memaksa pengguna yang sedang login untuk menjalankan aksi tanpa sepengetahuan mereka. Pastikan setiap formulir di halaman admin maupun publik menyertakan token kriptografis unik yang divalidasi dengan fungsi hash_equals().
4. Amankan Fitur Upload Gambar secara Berlapis
Fitur upload gambar sering menjadi sasaran penyisipan webshell. Untuk mengatasinya:
- Periksa tipe MIME asli file menggunakan ekstensi
finfodan dimensi gambar menggunakangetimagesize(). - Ubah nama file menjadi string acak kriptografis sehingga nama asli file tidak dapat dieksploitasi.
- Pasang aturan
.htaccessdi dalam direktoriuploads/untuk mematikan mesin eksekusi PHP.
Belum ada komentar. Jadilah yang pertama memberikan tanggapan pada artikel ini!