Validasi input di server: kenapa validasi di browser saja tidak cukup
Validasi di browser hanya membantu pengguna, sementara validasi di server melindungi aplikasi. Siapa pun dapat melewati formulir dan mengirim data langsung ke API Anda. Karena itu, setiap input harus diperiksa ulang di server memakai skema yang jelas dan daftar nilai yang diizinkan.
Kenapa validasi klien saja tidak cukup?
Kode di browser berada di tangan pengguna. Penyerang bisa mematikan JavaScript, mengubah permintaan lewat alat pengembang, atau memanggil endpoint langsung memakai skrip. Validasi klien tidak menghentikan itu semua.
Gunakan validasi klien untuk pengalaman pengguna yang baik, misalnya pesan galat langsung. Namun anggap semua data yang masuk ke server sebagai tidak tepercaya.
Contoh nyata: formulir pembelian membatasi jumlah barang antara 1 dan 10 di browser. Penyerang cukup mengirim jumlah negatif langsung ke API. Tanpa pemeriksaan di server, total harga bisa menjadi negatif dan merugikan bisnis.
Apa yang harus diperiksa di server?
- Tipe data: angka, teks, tanggal, atau nilai pilihan.
- Panjang dan rentang: batas maksimum teks serta nilai minimum dan maksimum angka.
- Format: surel, nomor telepon, dan URL yang sah.
- Daftar putih nilai: hanya terima pilihan yang dikenal, bukan menolak yang buruk.
- Otorisasi: apakah pengguna ini berhak mengubah data tersebut.
Pakai skema, bukan if yang tersebar
Pustaka validasi berbasis skema seperti Zod atau Joi membuat aturan terpusat dan mudah diuji.
Hubungannya dengan injeksi dan XSS
Validasi bukan pengganti perlindungan khusus. Untuk mencegah SQL injection, gunakan query berparameter. Untuk mencegah XSS, lakukan escaping saat menampilkan data, bukan hanya saat menerimanya.
OWASP menempatkan injeksi dan pengendalian akses yang rusak di antara risiko teratas aplikasi web, jadi lapisan validasi dan otorisasi harus bekerja bersama.
Ringkasan dan langkah berikutnya
Tinjau endpoint yang menerima input dari pengguna, pastikan masing-masing punya skema validasi di server, dan tulis pengujian untuk kasus tepi.
- Prinsip: jangan percaya input dari klien.
- Pendekatan: daftar putih dan skema.
- Pasangan wajib: query berparameter dan escaping keluaran.
- Rujukan: OWASP Input Validation Cheat Sheet di cheatsheetseries.owasp.org.
Topik terkait yang bisa Anda baca berikutnya: validasi form dengan Zod, OWASP Top 10, unggahan file yang aman, dan formulir kontak bebas spam.
Kesalahan yang perlu dihindari
Hindari menampilkan pesan galat yang terlalu rinci, seperti pesan database mentah, karena membantu penyerang memetakan sistem. Hindari juga memvalidasi hanya sebagian kolom sehingga ada kolom tersembunyi yang bisa dimanipulasi, misalnya peran pengguna.
Pertanyaan singkat seputar topik ini
Kenapa validasi di browser tidak cukup?
Kode di browser bisa dilewati atau dimanipulasi. Siapa pun dapat mengirim permintaan langsung ke API, sehingga server harus memeriksa ulang semuanya.
Pendekatan validasi apa yang paling aman?
Daftar putih berbasis skema, yaitu hanya menerima nilai dan format yang dikenal, dipadukan dengan query berparameter dan escaping keluaran.
Pertanyaan yang sering muncul
Ya, tanpa komitmen. Kami balas dalam 1×24 jam kerja.
Tentang Tim AnabisolutionsStudio digital dari Pekanbaru yang mengerjakan website, aplikasi, dan sistem untuk klien di Riau dan sekitarnya.
Anabisolutions

