Web sunucunuzu korumanın önemli yollarından biri, ziyaretçilerin sunucunuzdaki dizin yapısını görmesini engellemektir. Bu yazımızda Apache sunucularında kullanılan .htaccess dosyası ile dizin listeleme nasıl engellenir bunu inceleyeceğiz.
Eğer web sunucu dizinlerinizde bir klasörde index.html veya index.php gibi varsayılan bir dosya yoksa, tarayıcı sunucudaki dizin içeriğini kullanıcıya kolayca listeleyebilir. Bu durum güvenlik ve gizlilik açısından oldukça riskli bir durumdur. İşte bu durumun önüne nasıl geçileceğini aşağıda bulabilirsiniz.
Öncelikle yazının başında da belirtildiği gibi eğer sunucudaki bir dizinde index.html veya index.php şeklinde varsayılan bir index dosyası bulunuyorsa zaten bu dosya otomatik olarak çalışacak ve dizin listeleme zaten engellenmiş olacaktır. Ancak her dizine tek tek bu şekilde dosya yerleştirmek yerine .htaccess ile ziyaretçilerin içinde index dosyası bulunmayan klasörlere girdiklerinde dosya listesine ulaşmalarını engelleyebilirsiniz.
Dizin Listeleme Nedir?
Dizin listeleme, web sunucusunda kullanıcı herhangi bir dizine eriştiğinde içinde bulunan tüm dosyaların listesini tarayıcıda görebilmesi anlamına gelir. Örneğin, www.orneksite.com/uploads/ dizininde bir index dosyası bulunmuyorsa, o dizine giden herkes içeriğini aşağıdaki gibi bir liste şeklinde görebilir.
Index of /uploads
- fotograf1.jpg
- fotograf2.png
- klasor/
İşte bu durum sitenizdeki dosya yapısının istemeyen kişiler tarafından görüntülenmesini sağlar ve kötüye kullanılabilir. Sonuç olarak çeşitli güvenlik açıkları ortaya çıkabilir.
.htaccess Dosyası ile Dizin Listeleme Nasıl Engellenir?
Oldukça basit bir yöntem ile .htaccess dosyası kullanarak dizin listelemeyi engelleyebilirsiniz. Burada dikkat etmeniz gereken .htaccess dosyanızı düzenlerken dikkatli olmanız. Bu dosyada yapacağınız yanlış bir değişiklik web sitenizin ve sunucunuzun çalışmamasına neden olabilir. Bu sebeple birazdan bahsedeceğim eklemeyi yaparken mevcut dosya içeriğinizi korumaya dikkat etmeniz gerekiyor.
Bu işlem için öncelikle sunucunuzun kök dizininde .htaccess dosyasını bulmanız gerekiyor. Bunun için FileZilla benzeri bir program kullanabilir yada web sunucunuzun cPanel benzeri arayüzünden Dosya Döneticisine ulaşabilirsiniz.

Sunucunuzun kök dizinindeki .htaccess dosyasını bulduktan sonra bilgisayarınıza indirmeniz ve not defteri ile düzenlemeniz gerekiyor.
Dosyayı not defteri ile açtıktan sonra içerisine aşağıdaki satırı ekleyin.
Options -Indexes
Bu satır, web sunucunuzda dizin listelemeyi devre dışı bırakır. Artık herhangi bir kullanıcı içinde index dosyası bulunmayan bir klasöre erişmeye çalıştığında dosya listesini göremez. Bunun yerine 403 Forbidden hatası ekranda görünür.

Sunucu Dizininde .htaccess Dosyası Yoksa
Eğer sunucunuzun kök dizininde .htaccess dosyası bulunmuyorsa yeni bir .htaccess dosyası oluşturmanız gerekecektir. Bunun için yine not defteri uygulaması ile yeni bir .txt dosyası açıp içerisine yukarıda paylaştığım kodu ekleyin. Sonrasında bu dosyayı farklı kaydedip dosya adını ve uzantısını silerek sadece .htaccess dosya adı ile kaydedin. Bu aşamadan sonra kaydettiğiniz dosyayı sunucunuzun kök dizinine yüklemeniz yeterli olacaktır.
Dizin Listeleme Kapalı .htaccess Dosyası İndir
Eğer uğraşmak istemiyorsanız yukarıdaki linkten hazır .htaccess dosyasını indirip kullanabilirsiniz. Ancak sunucunuzda mevcut bir .htaccess dosyası var ise bu dosyayı indirip sunucunuza atmanız web sitenizin çalışmaz duruma getirebilir. Bu sebeple dikkatli olmanızda fayda var.