Fragen Sie ein Verzeichnis ohne Index-Datei an, und viele Server zeigen stattdessen die Dateiliste. Sicherungen, Exporte, eine alte Kopie einer Konfigurationsdatei — alles, was dort liegt, ist jetzt öffentlich, und automatische Scanner suchen genau danach.
Nginx
autoindex off; # the default, so check nobody turned it on
grep -rn autoindex /etc/nginx/
Apache und LiteSpeed
Options -Indexes
# or per directory, in .htaccess
Options -Indexes
Prüfen Sie jedes Verzeichnis, nicht nur die Wurzel
for d in uploads backup files export logs tmp; do
printf '%-10s ' "$d"
curl -sS -o /dev/null -w '%{http_code}\
' "https://yourdomain.com/$d/"
done
Eine 200 bei einem davon lohnt es, sofort im Browser zu öffnen. 403 oder 404 ist, was Sie wollen.
Eine leere Index-Datei ist eine schwache Lösung
Eine index.html in jeden Ordner zu legen verbirgt die Liste, und die Dateien bleiben über ihren Namen erreichbar. Das hält einen beiläufigen Blick auf und sonst nichts — schalten Sie die Option lieber am Server ab.
Die richtige Antwort für private Dateien
Was nicht öffentlich sein soll, gehört gar nicht erst unter das Dokumentenverzeichnis. Halten Sie es außerhalb und liefern Sie es über ein Skript aus, das prüft, wer fragt.
/var/www/site/
public/ <- the document root
storage/ <- backups, exports, logs: no URL can reach these
Wenn Sie schon nachsehen: Achten Sie auf die Dateien, die Leute zurücklassen — .env, .git, config.php.bak, database.sql. Eine im Web-Verzeichnis vergessene Quellsicherung hat schon ganze Anwendungen preisgegeben; fragen Sie jede einzeln an und stellen Sie sicher, dass sie nicht da ist.