Adresár .git je verejne dostupný

Čo to je

Adresár .git/ je v koreni vášho webu voľne dostupný. Súbor https://example.cz/.git/HEAD vracia 200 OK — a to znamená, že je dostupný aj celý zvyšok.

Prečo je to problém

.git/ obsahuje kompletnú históriu vášho projektu. Útočník ju za minútu stiahne nástrojom ako GitTools/Dumper alebo git-dumper. Čo tým získa:

Ako to opraviť

Krok 1 — zablokovať prístup

nginx:

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

Apache (.htaccess):

RedirectMatch 404 /\.git

Overte: curl -I https://example.cz/.git/HEAD má vrátiť 404.

Krok 2 — deployovať bez .git

Z dlhodobého hľadiska by .git/ nemal vôbec byť na produkčnom serveri. Lepšie cesty:

Krok 3 — rotujte secrets, ktoré kedy boli v repozitári

Ak ktokoľvek stiahol .git/, má vašu históriu. Predpokladajte, že všetky secrets, ktoré kedy boli commitnuté (aj zmazané), poznajú.

Vyhľadajte staré secrets v histórii:

# nájsť čokoľvek, čo vyzerá ako API kľúč
git log -p --all -G '(api[_-]?key|secret|password|token)' | head -200

# alebo použite gitleaks
gitleaks detect --source=.

Čo nájdete — rotovať. Zmazať z aktuálneho commitu nestačí — v histórii to zostáva navždy.

Referencie