Hardcoded Secrets: Dosa Turunan Developer

2025-04-10

secure-coding-basics

Hardcoded Secrets: Dosa Turunan Developer

Developer belajar security

Pernah nggak liat kode begini?

Text

"API_KEY=sk_test_1234567890abcdef"

Atau malah kamu yang nulis? 😅

Menyimpan rahasia (secrets) langsung di dalam kode itu salah satu dosa klasik developer. Dan sayangnya... masih sering banget kejadian.

1. Kenapa Ini Masalah Besar?

Bayangin kamu push kode ke repo publik, dan di dalamnya ada:

Env

DB_PASSWORD=root123

Langsung panik? Harusnya iya 😬

Risiko dari hardcoded secrets:

  • Bisa dibaca siapa saja (termasuk hacker)
  • Gak bisa diputar ulang atau revoke dengan mudah
  • Menyebar ke mana-mana karena di-commit dan di-clone

2. Contoh Kasus Gawat

GitHub pernah penuh alert karena banyak token AWS, Stripe, atau MongoDB bocor akibat developer yang nggak hati-hati. Contohnya:

Js

const secret = `mongodb+srv://admin:admin123@cluster.example.com`

Ketika secret seperti ini ada di repo publik, bot otomatis bisa dengan mudah menemukannya. Hasilnya? Akun kamu bisa diakses tanpa izin, data dicuri, atau bahkan layanan kamu disalahgunakan. Jangan sampai ini terjadi! 🛑

3. Solusi Klasik Tapi Efektif

  • Gunakan file .env dan jangan lupa masukin ke .gitignore
  • Gunakan Secret Manager (kayak AWS Secrets Manager, Vault, dsb)
  • Di CI/CD, inject secret via environment variable, bukan file

Contoh .env:

Env

STRIPE_SECRET_KEY=sk_live_...

Terus di kode:

Go

os.Getenv("STRIPE_SECRET_KEY")

4. Jangan Cuma Aman, Tapi Juga Rapi

Buat dokumentasi internal:

  • Secret mana yang dipakai untuk apa
  • Gimana cara rotate dan revoke
  • Siapa yang punya akses

Dan selalu anggap semua secret itu seperti password ATM. Jangan dibiarkan terbuka atau disebar ke mana-mana!

❌ NGERI INI MAH!!!

Setiap kali kamu hardcode secret, di situ juga lah hacker berpesta pora 🍻

Penutup

Jangan wariskan dosa ini ke developer setelahmu. Mari kita akhiri generasi hardcoded secret!

Kamu pernah nemu secret nyeleneh di kode? Share di komentar, tanpa nyebut nama orangnya ya 😆



Lanjut ke artikel berikutnya, dan jangan lupa audit project kamu hari ini juga!

Konten Terkait :

Input Validasi Bukan Opsional