Otevřený directory listing
Co to je
Adresář bez index.html nebo index.php vám web místo 404 nebo přesměrování ukáže seznam souborů — klasický „Index of /uploads“ výpis. Toto je defaultní chování Apache (modul autoindex), pokud ho explicitně nevypnete.
Proč je to problém
Útočníci na začátku průzkumu hledají právě tohle. Co můžou najít:
- Zálohy —
db_backup.sql,site.tar.gz,old.zip. - Předchozí verze souborů —
config.php.bak,wp-config.old. - Soukromé dokumenty — smlouvy, faktury, přepravní štítky, screenshot z testovacího prostředí.
- Interní skripty — debug, deploy, migration, které měly zůstat skryté.
I když v adresáři „nic citlivého není“, dáváte útočníkovi mapu vaší aplikace, kterou jinak nemá. Každá interní pojmenovací konvence (old_v2/, customer_export/) je nápověda.
Jak to opravit
Apache
V hlavní konfiguraci nebo .htaccess:
# vypnout autoindex globálně
Options -IndexesPokud máte vlastní VirtualHost:
<Directory /var/www/example.cz>
Options -Indexes +FollowSymLinks
</Directory>nginx
nginx má autoindex defaultně vypnutý — problém vzniká, když ho někdo explicitně zapnul. Hledejte v configu:
# odstraňte tyto řádky:
autoindex on;Sdílený hosting
Vytvořte v adresáři prázdný index.html:
echo "" > /var/www/example.cz/uploads/index.htmlToto je quick fix — lepší je vypnout autoindex globálně.
Ověření
Vyzkoušejte několik adresářů: curl -s https://example.cz/uploads/ | head -30. V odpovědi nesmí být HTML s odkazy na soubory.
Bonus: vyklidit zálohy
Když už tam jste — projděte si všechny adresáře a smažte staré zálohy a .bak soubory. I s vypnutým autoindexem je db.sql.bak dostupný, pokud útočník uhádne název.