Das .git-Verzeichnis ist öffentlich zugänglich

Worum es geht

Das Verzeichnis .git/ ist im Stammverzeichnis Ihrer Website frei zugänglich. Die Datei https://example.cz/.git/HEAD liefert 200 OK — und das bedeutet, dass auch der gesamte Rest erreichbar ist.

Warum das ein Problem ist

.git/ enthält die komplette Historie Ihres Projekts. Ein Angreifer lädt sie innerhalb einer Minute mit einem Tool wie GitTools/Dumper oder git-dumper herunter. Was er damit erhält:

Wie Sie es beheben

Schritt 1 — Zugriff blockieren

nginx:

location ~ /\.git {
    deny all;
    return 404;
}

Apache (.htaccess):

RedirectMatch 404 /\.git

Überprüfen: curl -I https://example.cz/.git/HEAD muss 404 zurückgeben.

Schritt 2 — ohne .git deployen

Langfristig sollte .git/ auf dem Produktionsserver überhaupt nicht vorhanden sein. Bessere Wege:

Schritt 3 — rotieren Sie alle Secrets, die jemals im Repository waren

Wenn irgendjemand .git/ heruntergeladen hat, besitzt er Ihre Historie. Gehen Sie davon aus, dass alle Secrets, die jemals committet wurden (auch gelöschte), bekannt sind.

Suchen Sie nach alten Secrets in der Historie:

# alles finden, was wie ein API-Schlüssel aussieht
git log -p --all -G '(api[_-]?key|secret|password|token)' | head -200

# oder gitleaks verwenden
gitleaks detect --source=.

Was Sie finden — rotieren. Aus dem aktuellen Commit zu löschen reicht nicht — in der Historie bleibt es für immer.

Referenzen