.env dosyalarının açığa çıkması: saldırganlar secret'larını nasıl bulur
Bir .env dosyası veritabanı parolalarını, API key'lerini ve imzalama secret'larını barındırır. Web üzerinden erişilebilirse — /.env, /.env.production veya /.env.backup gibi bir yedekte — herkes onu indirip hizmetlerini ele geçirebilir.
Nedir
Environment dosyaları sunucuda kalmalı ve asla istemcilere sunulmamalıdır. Yanlış yapılandırılmış bir statik handler, web root'a düşmüş başıboş bir kopya veya dotfile'ları sunan bir framework onları açığa çıkarabilir.
Saldırganlar tahmin etmez — /.env ve onlarca varyantını sürekli olarak milyonlarca host'a karşı isteyen otomatik taramalar çalıştırır. Erişilebilir bir dosya saatler içinde bulunur.
Neden önemli
Bu dosyalar rutin olarak production veritabanı URL'leri, Stripe secret key'leri, JWT imzalama secret'ları ve bulut kimlik bilgileri içerir. Tek bir sızıntı; tam veri hırsızlığı, sahte ücretlendirmeler ve hesap ele geçirme anlamına gelebilir.
Secret'lar rotate edilene kadar geçerli olduğundan, dosya kaldırıldıktan çok sonra bile — içindeki her şeyi rotate etmediğin sürece — hasar devam eder.
Nasıl düzeltilir
Web sunucusu veya proxy yapılandırmanda .env ve diğer dotfile'lara erişimi reddet.
location ~ /\.(?!well-known).* {
deny all;
return 404;
}Yapılandırmayı, sunucunun statik olarak sunduğu herhangi bir dizinin dışında sakla ve build'inin .env dosyalarını yayınlanan çıktıya kopyalamadığından emin ol.
Bir dosya bir kez bile erişilebilir olduysa, içindeki her secret'ı ele geçmiş kabul et ve veritabanı parolalarını, API key'lerini ve token'ları derhal rotate et.
SSS
Dosyayı kaldırdım — güvende miyim?
Secret'ları rotate edene kadar değil. Onu indiren herkes, sen değiştirene kadar hâlâ geçerli kimlik bilgilerine sahip.
Benimkinin açığa çıkıp çıkmadığını nasıl anlarım?
Bir tarayıcıda https://yourdomain.com/.env iste. 404 yerine KEY=value satırları görüyorsan, açığa çıkmış demektir. AppSafe bunu otomatik olarak kontrol eder.
Uygulaman etkileniyor mu?
AppSafe, bunu ve onlarca başka sorunu tek bir ücretsiz taramada kontrol eder.
Uygulamamı ücretsiz taraİlgili rehberler
İstemci tarafı JavaScript'te açığa çıkan API key'leri
Bundle'ındaki her şey herkese açıktır. Öyle davran.
Production'daki source map'ler kaynak kodunu sızdırır
Yayınlanan .map dosyaları orijinal kaynağını teslim eder.
CORS yanlış yapılandırması: joker ve yansıtma tuzakları
Her origin'e izin ver, her site API'ni okuyabilir.