Wie diese Prüfung funktioniert
Scanaris fordert sieben gängige Ordner deiner Domain an: /uploads/, /images/, /assets/, /files/, /backup/, /static/ und /media/. Antwortet einer davon mit einer Seite, deren Titel oder Überschrift „Index of …" lautet, das Format, das Apache, nginx und die meisten Server erzeugen, wenn sie ein Verzeichnis auflisten, öffnet er einen Befund mit mittlerem Schweregrad und dem Pfad. Ein bloßer 200 wird nicht gemeldet: Eine Single-Page-App, die auf allen Routen ihr HTML zurückgibt, passt nicht auf das Muster.
Warum das wichtig ist
Eine Auflistung verwandelt einen Ordner in einen navigierbaren Katalog von allem, was er enthält, auch von dem, was du nie von irgendeiner Seite verlinkt hast: Backups, Exporte, von Nutzern hochgeladene Dokumente, alte Dateiversionen, Bilder noch nicht veröffentlichter Produkte. Niemand muss Namen raten; der Server liefert sie sortiert und mit Datum. Und es ist der erste Ort, an dem ein automatischer Scanner nachschaut, weil eine offene Auflistung oft zu Schlimmerem im selben Ordner führt.
Warum das passiert
Der Webserver hat bei einer Anfrage an einen Ordner ohne index.html zwei Optionen: mit 403 antworten oder eine Liste erzeugen. Apache und manche Shared-Hosting-Panels kommen mit aktivierter Liste; nginx hat sie deaktiviert, außer jemand hat sie mit autoindex on eingeschaltet. In Express-Apps macht ein vergessenes serve-index oder ein express.static mit Listing-Optionen dasselbe.
So behebst du es
- nginx: such
autoindex onin der Konfiguration und stell es aufoff(oder entferne es; deaktiviert ist der Standard). - Apache: im VirtualHost oder in einer
.htaccessim RootOptions -Indexes. - Express: entferne jede Verwendung von
serve-indexund prüf, dassexpress.staticnur auf den Build-Ordner zeigt. - Shared Hosting: Das Panel hat meist eine Option „Index Manager" oder „Directory browsing"; stell sie für die Domain auf „No indexing".
- Vercel, Netlify und ähnliche erzeugen keine Auflistungen; wenn du den Befund dort siehst, gehört der Ordner zu einem anderen Server, der unter deiner Domain antwortet.
Prüf danach, was in den aufgelisteten Ordnern lag: Alles darin war öffentlich, auch wenn die Liste jetzt nicht mehr sichtbar ist. Gab es Backups oder Nutzerdaten, betrachte sie als heruntergeladen und handle entsprechend. Und verschiebe Privates aus dem vom Server ausgelieferten Verzeichnis; die Prüfungen sensible Dateien und offengelegte Backups decken die schwersten Fälle ab.
Prüf, ob es behoben ist
for d in uploads images assets files backup static media; do
printf "%-10s " "$d"; curl -s "https://deinedomain.de/$d/" | grep -c "Index of"
done
Alle müssen 0 zurückgeben. Probier auch jeden anderen Ordner, von dem du weißt, dass er auf deinem Server existiert, etwa /wp-content/uploads/ oder /docs/.
Häufige Fragen
Mein Bilderordner ist sowieso öffentlich. Was macht es aus, ob er aufgelistet wird?
Der Unterschied liegt zwischen jemandem, der ein Bild sehen kann, dessen URL er kennt, und jemandem, der alle sehen kann, auch die für eine noch nicht gestartete Kampagne hochgeladenen oder die eines bestimmten Kunden. Die Auflistung verrät außerdem Dateinamen, die manchmal personenbezogene Daten enthalten.
Warum nur sieben Ordner testen?
Das sind die, auf die sich die Mehrheit der offenen Auflistungen auf realen Seiten konzentriert. Wenn dein Server die Auflistung aktiviert hat, gilt das normalerweise für alle, also schließt die Korrektur in der Konfiguration sie überall.
Ist eine Auflistung bei einem leeren Ordner ein Problem?
Ein kleines, aber es zeigt, dass die Auflistung auf dem Server aktiv ist. Deaktiviere sie trotzdem: Der Ordner bleibt nicht ewig leer.