
Sitenizin güvenliğini düşünürken akla önce parolalar ve güncellemeler gelir. Oysa en sık yaşanan veri sızıntıları çok daha basit bir nedenden kaynaklanır: gizli kalması gereken dosyalar herkese açık duruyordur.
Bu yazı, hosting hesabınızda dışarıdan erişilmemesi gereken dosyaları ve bunları korumanın yollarını anlatıyor.
Riskli Dosyalar
| Dosya türü | İçerdiği | Sızarsa |
|---|---|---|
| Ortam dosyası (.env) | Veritabanı şifresi, API anahtarları | Tam erişim kaybı |
| Veritabanı yedeği (.sql) | Tüm kullanıcı verisi | Veri ihlali |
| Site arşivi (.zip) | Tüm kaynak kod | Kod ve şifre ifşası |
| Yedek kopyalar (.bak, .old) | Eski yapılandırma | Şifre ifşası |
| Sürüm kontrolü klasörü | Tüm kod geçmişi | Silinmiş şifreler bile görünür |
| Bilgi sayfaları | Sunucu yapılandırma detayları | Saldırı yüzeyi haritası |
Dördüncü satır özellikle tehlikelidir. Bir yapılandırma dosyasını düzenlemeden önce kopyasını almak yaygın bir alışkanlıktır — ama config.php.bak gibi bir dosya, uzantısı tanınmadığı için işlenmez ve düz metin olarak sunulur. İçindeki veritabanı şifresi tarayıcıda okunabilir hâle gelir.
Bu Dosyalar Nasıl Bulunuyor?
Saldırganların sizi özel olarak hedeflemesi gerekmez. Otomatik tarayıcılar, milyonlarca siteyi tarayarak bilinen dosya adlarını dener:
- Sözlük taraması. Yaygın yedek ve yapılandırma dosya adları tek tek denenir.
- Dizin listeleme. Klasör içeriği görünüyorsa tahmin gerekmez, liste hazır sunulur.
- Arama motoru sonuçları. İndekslenmiş yedek dosyaları arama sonuçlarında bulunabilir.
- Sürüm kontrolü klasörü. Açıkta kalan bir depo klasöründen tüm kaynak kod yeniden oluşturulabilir.
Bu taramalar sürekli çalışır. Bir yedek dosyasını "birkaç saatliğine" bırakmak bile risklidir.
Dizin Listeleme: Kapatılması Gereken İlk Ayar
Bir klasörde başlangıç dosyası yoksa, sunucu varsayılan olarak klasör içeriğini listeleyebilir. Ziyaretçi tüm dosyaları görür.
Bunun zararı sadece dosyaların görünmesi değildir:
- Yükleme klasöründeki tüm kullanıcı dosyaları listelenir
- Yedek dosyalarınız görünür hâle gelir
- Klasör yapınız saldırgana site mimarisini gösterir
- Arama motorları bu listeleri indeksleyebilir
Dizin listelemeyi kapatmak, yapılandırma dosyanıza eklenecek tek satırlık bir ayardır ve çoğu panelde bir onay kutusu olarak sunulur. Kapalı olduğundan emin olun.
Korunma Yöntemleri
Hassas Dosyaları Web Kök Dizini Dışına Taşıyın
En güçlü koruma budur. Web kök dizininin dışındaki bir dosyaya tarayıcıdan hiçbir şekilde erişilemez — yapılandırma hatası olsa bile.
Modern uygulamalar bu yapıyı destekler: kod bir üst dizinde, yalnızca genel dosyalar web kökünde durur.
Uzantı Bazlı Erişim Engeli
Taşıma mümkün değilse, riskli uzantılara erişimi yapılandırma dosyanızdan engelleyin. Bu, hem Linux hem Windows barındırmada mümkündür; yalnızca yazım biçimi farklıdır.
Kural dosyasının adı ve söz dizimi platforma göre değişir: Linux tarafında .htaccess, Windows hosting tarafında ise web.config kullanılır. İkisi de aynı işi yapar; taşıma yaparken kuralları çevirmeyi unutmayın.
Yedekleri Sunucuda Bırakmayın
Yedek alma alışkanlığı iyidir; yedeği sunucuda bırakma alışkanlığı kötüdür. İndirin ve silin. Yedeğin sunucuda durması hem risk hem de gereksiz disk kullanımıdır.
Kurulum Dosyalarını Silin
Kurulum tamamlandıktan sonra kurulum betikleri ve örnek yapılandırma dosyaları silinmelidir. Açıkta kalan bir kurulum betiği, sitenin yeniden yapılandırılmasına imkân verebilir.
Bilgi Sayfalarını Yayında Bırakmayın
Teşhis için oluşturulan sunucu bilgi sayfaları, yapılandırmanızın tamamını gösterir. Kontrolünüzü yaptıktan sonra silin.
Kendi Sitenizi Denetleyin
On dakikalık bir kontrol, en yaygın açıkları kapatır:
- Tarayıcıdan yaygın yedek dosya adlarını deneyin — yanıt gelmemelidir
- Yükleme klasörünüzü doğrudan açın — liste görünmemelidir
- Sürüm kontrolü klasörünüzün erişilebilir olup olmadığını kontrol edin
- Sunucudaki dosyalar arasında eski yedek ve kopya dosya arayın
- Arama motorunda sitenizde indekslenmiş beklenmedik dosya var mı bakın
Bu kontrolleri her büyük değişiklikten sonra tekrarlayın — özellikle site taşıma ve güncelleme sonrasında, çünkü geçici dosyalar en çok o anlarda unutulur.
Sonuç
Veri sızıntılarının önemli bir kısmı karmaşık saldırılardan değil, açıkta unutulmuş dosyalardan kaynaklanır. Üç alışkanlık riskin çoğunu ortadan kaldırır: dizin listelemeyi kapatın, yapılandırma dosyalarını web kök dizini dışında tutun ve yedekleri sunucuda bırakmayın. Özellikle .bak ve .old uzantılı kopyalara dikkat edin — bu dosyalar işlenmeden düz metin olarak sunulur ve içlerindeki şifreler tarayıcıda okunabilir. Sitenizde bugün on dakikalık bir kontrol yapın.
Sıkça Sorulan Sorular (SSS)
config.php.bak dosyası neden tehlikeli?
Sunucu .bak uzantısını tanımadığı için dosyayı işlemez, düz metin olarak sunar. Yani içindeki veritabanı kullanıcı adı ve şifresi tarayıcıda okunabilir hâle gelir. Yapılandırma yedeklerini asla web kök dizininde bırakmayın.
Dizin listeleme neden kapatılmalı?
Açık olduğunda klasör içeriğinizin tamamı görünür — yükleme klasöründeki kullanıcı dosyaları, unutulmuş yedekler ve site yapınız dahil. Saldırganın dosya adı tahmin etmesine gerek kalmaz, liste hazır sunulur.
.env dosyam korunuyor mu?
Modern uygulamalarda genellikle web kök dizini dışındadır ve erişilemez. Ancak yanlış kurulumlarda kök dizinde kalabilir. Tarayıcıdan doğrudan erişmeyi deneyin — içerik görünüyorsa acilen taşıyın ve içindeki tüm anahtarları yenileyin.
Yedeklerimi sunucuda tutmak neden riskli?
Site arşivi ve veritabanı yedeği, tek dosyada tüm kodunuzu ve verinizi barındırır. Otomatik tarayıcılar yaygın yedek adlarını sürekli dener. Ayrıca sunucuda duran yedek, sunucu kaynaklı bir sorunda zaten işe yaramaz. İndirin ve silin.