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.