Dizin Listeleme ve Hassas Dosya İfşası: Sunucunuz Neyi Gösteriyor?
14 Eylül 2026
Dizin Listeleme (Directory Listing), bir web sunucusunun bir klasörde varsayılan dosya (ör. index.html) bulamadığında, o klasördeki tüm dosyaları bir liste olarak göstermesidir. Amaçlanmadığında bu, saldırgana sitenizin dosya yapısını, yedekleri ve bazen doğrudan hassas içeriği açık eder. Yanına bir de yanlışlıkla erişilebilir kalan yapılandırma/yedek dosyaları eklendiğinde, ciddi bir sızıntı kaynağı ortaya çıkar.
Nasıl oluşur?
- Otomatik dizin listeleme açık: Sunucu, indeks dosyası olmayan klasörlerde içerik listesi üretir.
https://siteniz.com/uploads/adresine gidildiğinde tüm yüklenen dosyalar görünür. - Yedek ve geçici dosyalar:
config.php.bak,database.sql,.env,index.php~gibi dosyalar dağıtım sırasında yanlışlıkla erişilebilir kalır. - Sürüm kontrol dizinleri: Web köküne kopyalanmış bir
.git/klasörü, saldırganın tüm kaynak kodu ve geçmişi indirmesine olanak tanıyabilir.
Neden tehlikeli?
Bu dosyalar sıklıkla sır içerir: veritabanı parolaları, API anahtarları, iç yapılandırma. .env veya config sızıntısı, doğrudan bir hesap/altyapı ele geçirmeye dönüşebilir. Kaynak kod ifşası ise saldırgana uygulamanın iç mantığını ve başka zafiyetleri bulma imkânı verir.
Nasıl kapatılır?
- Dizin listelemeyi kapatın. Nginx’te
autoindex off;(varsayılan kapalıdır), Apache’deOptions -Indexes. - Hassas dosyaları web kökünün dışına taşıyın. Yapılandırma, sır ve yedekler public dizinde bulunmamalı.
- Yedek/geçici dosya bırakmayın. Dağıtım sürecini,
.bak/~/.olddosyalarını üretime taşımayacak biçimde düzenleyin. - Sürüm kontrol dizinlerini engelleyin.
.git,.svngibi klasörlere erişimi sunucu düzeyinde reddedin. .envve benzeri dosyalara erişimi açıkça reddedin (sunucu kuralıyla).
Nasıl test edilir?
Yaygın hassas yolları elle deneyin:
for p in .git/HEAD .env config.php.bak backup.sql uploads/ ; do
echo -n "$p -> "; curl -s -o /dev/null -w "%{http_code}\n" "https://siteniz.com/$p"
done
200 dönen ve içerik gösteren yollar risklidir; .git/HEAD için 200 özellikle tehlikelidir (tüm depo indirilebilir olabilir). Ayrıca bir klasöre indeks dosyası olmadan gidip liste çıkıp çıkmadığını kontrol edin.
Özet
Dizin listeleme ve erişilebilir yedek/yapılandırma dosyaları, sunucunuzu istemeden bir “dosya tarayıcısına” çevirir ve sır sızdırabilir. Çözüm: dizin listelemeyi kapatın, hassas dosyaları web kökünün dışına alın, yedek/sürüm-kontrol dosyalarını üretimden uzak tutun ve yaygın yolları düzenli test edin.
Kaynaklar: OWASP: Directory Listing / Misconfiguration (A05:2021), CWE-548.
Sunucunuzda açık dizin listeleme veya erişilebilir hassas dosya var mı? CyberTestify’ın dış yüzey taraması bu yaygın yanlış yapılandırmaları kontrol eder.