Input Validasi Bukan Opsional

2025-04-10

secure-coding-basics

Input Validasi Bukan Opsional

Developer belajar security

Validasi input itu kayak sabuk pengaman. Jarang dipakai? Mungkin. Tapi pas butuh, nyelametin nyawa (dan data) 😬

1. Semua Input Harus Dianggap Berbahaya

Bayangin user bisa kirim data kayak gini:

Go

<script>alert('Hacked!')</script>

Kalau langsung kamu render ke UI tanpa disaring... ya boom! XSS jalan-jalan di app kamu.

2. Bukan Cuma di Frontend

"Ah, kan udah divalidasi di form?"

NOPE. Hacker gak selalu pake UI. Mereka bisa langsung hantam endpoint via Postman atau curl.

Makanya:

  • Validasi di frontend buat UX
  • Validasi di backend buat keamanan 🔒

3. Contoh Gagal Validasi

Misalnya kamu bikin endpoint login:

Go

username := r.FormValue("username")
if len(username) > 1000 {
  return errors.New("bro, niat nge-DDOS ya?")
}

Atau bahkan lebih parah: gak divalidasi sama sekali dan langsung masukin ke query.

4. Gunakan Library yang Andal

Jangan bikin validasi dari nol kalau ada yang udah battle-tested:

  • Untuk Go: go-playground/validator
  • Untuk JS: zod, yup, joi

5. Validasi Bukan Anti-Bug, Tapi Penjaga Gerbang

Validasi bukan jaminan 100% aman. Tapi tanpanya, kamu ibarat rumah gak pake pintu. Ya siap-siap disamperin tamu tak diundang 😅

Validasi itu sopan santun digital. Kamu gak bisa percaya semua orang bakal main bersih.

Yuk mulai biasain nge-validasi input dari sekarang~ 🚀

Konten Terkait :

Kenapa Developer Harus Belajar Security Sejak Awal?