← Back to Home
WEB SECURITY · DEPLOYMENT

.env dan .git ikut ter-deploy ke hosting: cara cek dan menutupnya

26 Oktober 2026 · 7 min read · AISG Editorial

Ada dua berkas yang tidak pernah boleh bisa diakses dari internet: .env (berisi kunci dan koneksi database) dan folder .git (berisi seluruh riwayat kode, termasuk kunci yang sudah Anda hapus). Keduanya sering ikut terunggah bukan karena serangan, tapi karena cara deploy.

Bagaimana berkas itu bisa ikut terunggah

Begitu bisa diakses, isinya bisa dibaca tanpa alat khusus. Dari .env orang mendapat koneksi database, kunci API, dan kredensial SMTP. Dari .git orang bisa merekonstruksi kode sumber Anda, termasuk kunci yang pernah di-commit lalu dihapus di commit berikutnya.

Cara memeriksa — 30 detik, tanpa alat

  1. curl -sI https://domain-anda/.env — harus 404 (atau 403). Kalau 200, berhenti di sini dan tutup dulu.
  2. curl -sI https://domain-anda/.git/HEAD — sama, harus 404/403. Jawaban berisi ref: refs/heads/main berarti repo Anda publik.
  3. curl -sI https://domain-anda/.git/config — kalau terbaca, biasanya memuat URL repo dan nama pengguna.
  4. Coba juga /.env.local, /.env.production, dan /config.json: nama berkas berbeda, masalahnya sama.
Jangan mengandalkan "tidak ada yang tahu URL-nya". Nama berkas ini baku dan sudah dipindai otomatis oleh ribuan bot setiap hari. Yang menyelamatkan Anda adalah berkasnya tidak ada di webroot, bukan karena URL-nya tidak populer.

Menutupnya: tiga lapis, dari paling benar

  1. Keluarkan dari direktori publik. .env tidak perlu ada di server web sama sekali — simpan di panel environment penyedia hosting atau di file di luar webroot (mis. /etc/app/app.env) yang dibaca oleh proses aplikasi, bukan oleh HTTP server.
  2. Blokir di web server. Caddy: @hidden path /.* /.*/* lalu respond @hidden 404. nginx: location ~ /\\. { deny all; }. Ini lapisan kedua, bukan pengganti langkah pertama.
  3. Deploy dengan filter. Untuk rsync, tambahkan --exclude='.env*' --exclude='.git/'. Untuk pipeline, salin hanya folder build.

Kalau berkas itu pernah bisa diakses, anggap isinya sudah bocor: rotasi semua kunci di dalamnya, dan kalau .git terbuka, anggap kode sumber Anda publik.

Apa yang diperiksa AISG untuk kasus ini

Free URL scan di /#free-scan memeriksa tiga jalur — /.env, /.git/HEAD, /.git/config — dan melaporkannya sebagai temuan dengan bukti yang disamarkan: yang ditampilkan hanya cuplikan aman (status HTTP dan pola nama variabel), bukan isi rahasianya. Batasnya jujur: scan ini tidak menyapu seluruh nama berkas, jadi "tidak ditemukan" bukan berarti tidak ada .env.local di tempat lain. Empat perintah curl di atas tetap cara paling cepat memastikan sendiri.

Untuk pemeriksaan menyeluruh — riwayat git, rahasia di seluruh repo, aturan deploy — Anda perlu scan lokal dari worker, yang membaca kode di komputer Anda tanpa mengirimkannya ke mana pun.

Bacaan lanjutan: secret di Git: kenapa bisa bocor · API key bocor di aplikasi vibe coding.
.env Git Exposure Deployment Free Scan

Check your own live app.

One free URL scan, no install, no account — eight read-only checks and one PDF report.

Scan my app free
Early access: AISG is currently in early-access mode — the Community plan is free to start. Scans must be performed only against targets you are authorized to assess — results are indicative and require human review (see Trust & Legal).