Publicznie dostępne repozytorium Git
Co to oznacza
Jeśli katalog .git lub pliki Git (np. .gitignore, .gitmodules) są publicznie dostępne w katalogu głównym Twojej strony, repozytorium kodu źródłowego zostało wdrożone na serwer produkcyjny wraz z metadanymi Git. Możesz to sprawdzić wpisując w przeglądarce twojastrona.pl/.git/HEAD — jeśli zobaczysz treść zamiast błędu 403/404, problem istnieje.
Katalog .git zawiera kompletną historię repozytorium — każdy commit, każdą wersję każdego pliku, konfigurację remote i logi.
Jakie jest ryzyko
- Pełny dostęp do kodu źródłowego — atakujący może odtworzyć całe repozytorium poleceniem
git clonelub pobierając pliki z katalogu.git/objects. Uzyskuje dostęp do aktualnego kodu i całej historii zmian. - Wyciek danych wrażliwych z historii — nawet jeśli usunąłeś hasła, klucze API czy tokeny z bieżącego kodu, mogą one nadal istnieć we wcześniejszych commitach.
- Wyciek wp-config.php — plik konfiguracyjny z danymi do bazy i kluczami bezpieczeństwa jest prawie zawsze w repozytorium.
- Mapowanie infrastruktury — konfiguracja
.git/configmoże ujawnić adresy serwerów, nazwy użytkowników i strukturę CI/CD.
Jak to naprawić
- Zablokuj dostęp natychmiast — na poziomie serwera:
Nginx:# .htaccess (Apache) <DirectoryMatch "^/.*/\.git"> Order Deny,Allow Deny from all </DirectoryMatch>location ~ /\.git { deny all; return 404; } - Usuń katalog
.gitz serwera produkcyjnego — jeśli nie zarządzasz stroną przez Git na serwerze:rm -rf /sciezka/do/wordpress/.git - Jeśli używasz Git do deploymentu — skonfiguruj deploy tak, aby kopiował tylko pliki robocze (bez
.git), np.git archivelub rsync z wykluczeniem.git. - Zmień dane wrażliwe — jeśli
.gitbył publiczny, załóż, że wszystkie dane z historii repozytorium zostały skompromitowane. Zmień hasła, klucze API, tokeny i klucze bezpieczeństwa WordPress.