.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 taraBlogdan
Sahte yapay zekâ tarayıcıları .env dosyalarının peşinde. Seninkini nasıl kontrol edersin
Kimlik bilgisi tarayıcıları allowlist'leri atlatmak için yapay zekâ tarayıcılarının adlarını ödünç alıyor ve özellikle tek bir dosyayı istiyor: senin .env dosyanı. Seninkinin erişilebilir olup olmadığını nasıl kontrol edersin ve nasıl kilitlersin.
Railway ihlali: uygulamanın secret'larını kesinti olmadan nasıl yenilersin
Saldırganlar yapay zekâ ve platform API key'lerinin peşine düşünce Railway tüm kullanıcılarından ortam değişkenlerini yenilemelerini istedi. Ne kadar açıkta olduğunu nasıl kontrol edersin, uygulamanı çökertmeden her şeyi nasıl yenilersin ve bir sonraki ihlalin daha az canını yakmasını nasıl sağlarsın.
PHP2Shell aktif olarak istismar ediliyor: uygulamanın açıkta olup olmadığını nasıl kontrol edersin
PHP'nin kendisindeki iki kritik hata, birkaç gün içinde "yama yayınlandı"dan "aktif olarak istismar ediliyor"a geçti. Barındırdığın herhangi bir şeyin etkilenen bir sürüm çalıştırıp çalıştırmadığını nasıl anlarsın ve bugün ne yapmalısın.
AI ile bir uygulama mı yayınlıyorsun? Yayına almadan önce şu 7 şeyi kontrol et
AI kodlama araçları "çalışıyor" için optimize eder, "yayına almak güvenli" için değil. Yeni yayınlanan her uygulamada ilk kontrol ettiğimiz yedi sorun bunlar — ve her birinin çözümü.
İlgili rehberler
Açıkta kalan .git dizini: göz önünde saklanan kaynak kodu sızıntısı
Erişilebilir bir /.git, tüm kod tabanını ve commit geçmişini teslim eder.
Açıkta kalan veritabanı yedekleri: /backup.sql erişilebilir olduğunda ne olur
Erişilebilir bir .sql dump'ı, tüm veritabanını eksiksiz teslim etmek demektir.
İ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.