Environment Variable: Jauhkan API Key dari Kode
API key yang ditulis di kode mudah bocor. Pelajari cara environment variable, file .env, secret scanning, dan rotasi kunci menjaga kredensial tetap aman.

Cukup satu commit. Password database atau API key yang ditempel di kode sumber, di-push ke repositori publik, lalu ditemukan pemindai otomatis dalam hitungan menit. Menurut laporan GitGuardian State of Secrets Sprawl 2026, sekitar 29 juta secret yang ditulis langsung di kode terdeteksi di commit publik GitHub sepanjang 2025, dan kebocoran kunci layanan AI naik 81%. Solusinya dimulai dari kebiasaan sederhana: simpan secret di environment variable, bukan di dalam kode.
Apa itu environment variable
Environment variable adalah pasangan kunci dan nilai yang diberikan sistem operasi kepada program yang sedang berjalan. Kode membaca DATABASE_URL atau PAYMENT_API_KEY saat runtime, alih-alih menyimpan nilainya di file yang ikut di-commit.
Metodologi Twelve-Factor App yang terkenal menyarankan hal yang sama: simpan konfigurasi di environment. Ada pula tes sederhana yang berguna. Bisakah kode proyekmu dijadikan open source saat ini juga tanpa membocorkan kredensial apa pun? Jika tidak, ada secret yang berada di tempat yang salah.
Pengaturan dasar
1. Gunakan file .env untuk pengembangan lokal
File .env menyimpan nilai lokalmu, satu per baris:
DATABASE_URL=postgres://localhost:5432/app
PAYMENT_API_KEY=sk_test_xxxSejak versi 20.6, Node.js bisa memuatnya tanpa paket tambahan lewat node --env-file=.env app.js, seperti dijelaskan di dokumentasi environment variable Node.js. Sebagian besar framework dan bahasa pemrograman punya pemuat serupa.
2. Abaikan file itu di Git
Tambahkan .env ke .gitignore sebelum commit pertama. Dokumentasi Git tentang gitignore menjelaskan aturan polanya. Perlu diingat, mengabaikan file tidak menghapusnya dari pelacakan jika file itu sudah telanjur di-commit.
3. Commit .env.example sebagai gantinya
Bagikan template berisi nama variabel dengan nilai palsu. Anggota tim baru cukup menyalinnya menjadi .env lalu mengisi kunci mereka sendiri.
Enam tips untuk mencegah kebocoran
Ketahui apa yang sampai ke browser. Alat build frontend memasukkan sebagian variabel ke JavaScript publik. Di Vite, hanya variabel berawalan
VITE_yang terekspos, seperti dijelaskan di panduan env Vite. Next.js melakukan hal yang sama dengan awalanNEXT_PUBLIC_. Jangan pernah menaruh secret di balik awalan tersebut.Pakai kunci berbeda untuk tiap environment. Development, staging, dan production tidak boleh berbagi kredensial, agar kunci uji yang bocor tidak bisa menyentuh data sungguhan.
Beri setiap kunci hak akses seminimal mungkin. Kunci yang hanya perlu membaca tidak seharusnya bisa menghapus.
Aktifkan secret scanning. Fitur push protection dari GitHub memblokir push yang memuat format secret yang dikenali sebelum sampai ke repositori.
Rotasi dulu, bersihkan kemudian. Jika secret bocor, segera cabut dan ganti. Menghapus commit saja tidak cukup, karena fork, clone, dan cache mungkin sudah menyimpan salinannya.
Gunakan secrets manager di production. Saat tim bertambah besar, beralihlah dari file biasa ke vault khusus atau penyimpanan secret milik penyedia cloud. OWASP Secrets Management Cheat Sheet membahas sentralisasi, kontrol akses, rotasi, dan audit.
Kesalahan umum yang perlu dihindari
Mencetak semua environment variable ke log atau halaman error saat debugging.
Mengirim file
.envlewat aplikasi chat atau email.Menempelkan kunci asli ke asisten coding AI atau tangkapan layar.
Menganggap repositori privat akan aman selamanya. Visibilitas repositori bisa berubah, dan anggota tim datang serta pergi.
Anggap setiap secret suatu hari akan bocor. Lalu pastikan hari itu berjalan biasa saja: rotasi kuncinya dan lanjutkan pekerjaan.
Jelajahi lebih lanjut
Konfigurasi yang rapi berjalan seiring dengan riwayat yang rapi. Baca panduan kami tentang menulis pesan commit Git yang rapi dan jelas serta semantic versioning, atau lihat software yang kami rilis di Ryuartistry.