File .env yang terekspos: cara penyerang menemukan rahasiamu
File .env menyimpan password database, API key, dan secret untuk signing. Kalau bisa dijangkau lewat web — di /.env, /.env.production, atau backup seperti /.env.backup — siapa pun bisa mengunduhnya dan mengambil alih layananmu.
Apa itu
File environment seharusnya tetap ada di server dan tidak pernah disajikan ke klien. Handler statis yang salah konfigurasi, salinan tercecer di web root, atau framework yang menyajikan dotfile bisa mengeksposnya.
Penyerang tidak menebak — mereka menjalankan scan otomatis yang meminta /.env dan puluhan variannya ke jutaan host secara terus-menerus. File yang bisa dijangkau akan ditemukan dalam hitungan jam.
Kenapa penting
File-file ini rutin berisi URL database produksi, Stripe secret key, JWT signing secret, dan kredensial cloud. Satu kebocoran bisa berarti pencurian data total, transaksi penipuan, dan pengambilalihan akun.
Karena secret-nya tetap valid sampai dirotasi, kerusakannya berlanjut lama setelah file dihapus, kecuali kamu merotasi semua yang ada di dalamnya.
Cara memperbaiki
Tolak akses ke .env dan dotfile lain di konfigurasi web server atau proxy-mu.
location ~ /\.(?!well-known).* {
deny all;
return 404;
}Simpan konfigurasi di luar direktori mana pun yang disajikan server secara statis, dan pastikan proses build-mu tidak menyalin file .env ke output yang dipublikasikan.
Kalau sebuah file pernah bisa dijangkau, anggap setiap secret di dalamnya sudah bocor dan segera rotasi password database, API key, dan token.
FAQ
Aku sudah menghapus filenya — apakah aku aman?
Belum, sampai kamu merotasi secret-nya. Siapa pun yang sudah mengunduhnya masih memegang kredensial yang valid sampai kamu menggantinya.
Bagaimana aku tahu punyaku terekspos?
Minta https://yourdomain.com/.env di browser. Kalau kamu melihat baris KEY=value alih-alih 404, berarti terekspos. AppSafe memeriksa ini secara otomatis.
Apakah aplikasimu terpengaruh?
AppSafe memeriksa ini dan puluhan masalah lain dalam satu pemindaian gratis.
Pindai aplikasiku gratisDari blog
Crawler AI palsu sedang memburu file .env-mu. Begini cara mengeceknya
Pemindai kredensial meminjam nama crawler AI untuk lolos dari allowlist, dan mereka mencari satu file khusus: .env-mu. Cara mengecek apakah file itu bisa diakses, dan cara menguncinya.
Insiden Railway: cara merotasi rahasia aplikasimu tanpa downtime
Railway meminta semua pengguna mengganti environment variable mereka setelah penyerang mengincar API key penyedia AI dan platform. Cara mengecek keterpaparanmu, merotasi semuanya tanpa membuat aplikasi down, dan membuat pembobolan berikutnya tidak terlalu menyakitkan.
PHP2Shell sedang dieksploitasi: cara cek apakah aplikasimu terekspos
Dua bug kritis di PHP sendiri berubah dari "patch dirilis" menjadi "dieksploitasi di dunia nyata" hanya dalam hitungan hari. Cara mengetahui apakah ada yang kamu hosting memakai versi terdampak, dan apa yang harus dilakukan hari ini.
Mau rilis aplikasi buatan AI? Cek 7 hal ini sebelum meluncur
Tool coding AI mengoptimalkan agar "jalan", bukan agar "aman untuk dirilis". Inilah tujuh masalah yang pertama kami cek di setiap aplikasi yang baru diluncurkan — beserta perbaikannya masing-masing.
Panduan terkait
Direktori .git yang terekspos: kebocoran source code yang tersembunyi di depan mata
/.git yang dapat dijangkau menyerahkan seluruh codebase dan riwayat commit Anda.
Backup database yang terekspos: apa yang terjadi saat /backup.sql dapat dijangkau
Dump .sql yang dapat dijangkau sama dengan menyerahkan seluruh database Anda.
API key terekspos di JavaScript sisi klien
Apa pun di bundle-mu bersifat publik. Perlakukan seperti itu.
Source map di produksi membocorkan kode sumbermu
File .map yang ikut terkirim menyerahkan kode sumber aslimu.