# Folder .git pubbliku: tnixxija ta' data sottovalutata

> Il-folder .git tagħkom huwa pubbliku? Hekk tivverifikawh, tibblokkaw l-aċċess, tibdlu d-deployment u tittrattaw dettalji tal-aċċess mill-istorja.

Sors: https://phpsos.de/mt/blog/git-ordner-oeffentlich/  
Stat: 25/10/2026  
Fornitur: PHP SOS, Għajnuna ta' emerġenza għal PHP u sigurtà tas-server. Għajnuna immedjata fuq WhatsApp: https://wa.me/491736494914?text=Bongu%20PHP%20SOS%2C%20g%C4%A7andna%20b%C5%BConn%20g%C4%A7ajnuna%20bis-server%20tal-PHP%20tag%C4%A7na.%20Kumpanija%3A%20%E2%80%A6%20Websajt%3A%20%E2%80%A6

**Fil-qosor:** Folder .git pubbliku jinħoloq meta websajt titqassam b'`git clone` jew `git pull` direttament fil-webroot u s-server tal-web ma jibblokkax folders moħbija. Imbagħad il-kodiċi sors kollu mal-istorja tal-verżjonijiet jista' jinġieb, inklużi dettalji tal-aċċess ikkummittjati kmieni. Ivverifikaw id-domains tagħkom b'sejħa sempliċi, ibblukkaw l-aċċess minnufih, biddlu d-deployment għal pakketti mingħajr `.git` u biddlu d-dettalji tal-aċċess mill-istorja.

## Il-kodiċi sors biex jittieħed

Git huwa l-għodda standard tal-ġestjoni tal-verżjonijiet, u għal timijiet żgħar huwa ovvju li jintuża wkoll biex jitqassam: tgħaqqad mas-server, `git pull`, lest. Dan jaħdem b'mod affidabbli u huwa mgħaġġel. Imma għandu effett sekondarju li spiss ħadd ma jinduna bih.

Fil-folder tal-proġett hemm folder moħbi `.git`. Fih mhux biss l-istat attwali, imma kull fajl f'kull verżjoni li qatt ġiet ikkummittjata, flimkien ma' messaġġi tal-commits, ismijiet u indirizzi tal-posta tal-iżviluppaturi u referenzi għal servers. Jekk dan il-folder jinsab fil-webroot u s-server tal-web jagħtih, kulħadd jista' jġibu.

Għall-attakkanti dan huwa rigal. Bil-kodiċi sors jistgħu jiġu mfittxija vulnerabbiltajiet b'mod mirat, minflok ma jiġu ddeduċuti mill-barra. U fl-istorja spiss insibu affarijiet li kienu jidhru mħassra mdawwar: password tad-database mill-bidu, ċavetta tal-API, fajl tat-test b'data tal-klijenti.

## Il-folder .git tagħkom huwa pubbliku? Hekk tivverifikawh

Il-verifika tieħu sekondi u ma tibdel xejn. Għal kull domain u subdomain itolbu fajl li jeżisti f'kull repository ta' Git:

```bash
# Mistenni: 403 jew 404
curl -s -o /dev/null -w "%{http_code}\n" https://www.example.de/.git/HEAD
curl -s -o /dev/null -w "%{http_code}\n" https://www.example.de/.git/config
# Fuq is-server: Hemm folders .git taħt il-webroots?
find /var/www /srv/www -maxdepth 4 -type d -name ".git" 2>/dev/null
```

Status 200 ifisser: il-folder huwa aċċessibbli. Oqogħdu attenti wkoll għal sottodirettorji. Xi drabi r-repository ma jinsabx fil-webroot innifsu, imma f'folder ta' plugin jew theme li jinżamm separatament b'Git.

Ivverifikaw ukoll ambjenti ta' staging u tat-test. Jiġu aġġornati b'Git aktar spiss mill-produzzjoni u spiss ikunu aċċessibbli taħt subdomains li jistgħu jiġu ddeduċuti.

## Minnufih: ibblokka l-aċċess

Sakemm id-deployment jinbidel, regola fis-server tal-web tibblokka l-aċċess għal folders tal-ġestjoni tal-verżjonijiet. Blokk ġenerali għal fajls moħbija, kif deskritt f'[Ipproteġi sewwa d-dettalji tal-aċċess u l-fajls .env](https://phpsos.de/mt/blog/env-dateien-schuetzen/), ikopri dan ukoll. Min irid jibblokka b'mod mirat biss il-ġestjoni tal-verżjonijiet juża regola aktar dejqa:

```nginx
location ~ /\.(git|svn|hg)(/|$) {
    return 404;
}
```

```apache
RedirectMatch 404 /\.(git|svn|hg)(/|$)
```

Wara erġgħu ippruvaw il-verifika ta' hawn fuq, u mhux b'test tal-konfigurazzjoni, imma b'sejħa vera mill-barra: test ta' konfigurazzjoni b'suċċess jgħid biss li s-sintassi hija korretta, mhux li r-regola taħdem qabel regoli oħra għal fajls statiċi. B'panels bħal Plesk jew cPanel daħħlu r-regola fid-direttivi addizzjonali previsti għal dan, biex ma tintilifx mal-ħolqien li jmiss tal-konfigurazzjoni.

> **Aġixxu immedjatament:**
> Jekk il-folder kien aċċessibbli, ittrattaw id-dettalji tal-aċċess kollha li qatt kienu fir-repository bħala magħrufa. Il-blokk waħdu mbagħad mhuwiex biżżejjed, il-valuri jridu jinbidlu.

## Permanenti: qassam mingħajr .git fil-webroot

Il-blokk huwa sigurtà addizzjonali, mhux soluzzjoni. B'mod permanenti l-ġestjoni tal-verżjonijiet ma tappartjenix fuq is-server tal-produzzjoni. Modi mgħarrba, skont l-ambjent tagħkom:

| Proċedura | Kif taħdem | Adattata għal |
|---|---|---|
| Pakkett tal-build mis-CI | Il-pipeline tibni arkivju mingħajr `.git`, is-server jiftħu f'direttorju ġdid tar-release | Timijiet b'CI/CD |
| `git archive` | joħloq arkivju ta' stat mingħajr data tal-verżjonijiet | proġetti żgħar mingħajr pipeline |
| `rsync` b'esklużjonijiet | jittrasferixxi biss il-fajls meħtieġa | servers klassiċi |
| Immaġni ta' container | Il-kodiċi jiġi kkupjat fl-immaġni waqt il-build, `.git` eskluż b'`.dockerignore` | Operat b'containers |

Direttorju tar-release għal kull verżjoni b'link simboliku lejn l-istat attwali għandu vantaġġ ieħor: f'każ ta' problemi tistgħu terġgħu lura minnufih. Għal setups ta' containers [CI/CD: ibni mill-ġdid awtomatikament immaġini PHP](https://phpsos.de/mt/blog/php-images-in-ci-neu-bauen/) jiddeskrivi kif il-builds isiru riproduċibbli. Hemmhekk għandu jiġi vverifikat ukoll li `.git` ma jaslux fl-immaġni.

```bash
# Eżempju: oħloq pakkett ta' stat mingħajr data tal-verżjonijiet
git archive --format=tar.gz -o release.tar.gz HEAD
```

## Fajls oħra tal-proġett li ma jappartjenux fil-webroot

Il-folder `.git` huwa l-eżempju l-aktar magħruf, imma mhux l-uniku. Min iqassam direttorji sħaħ tal-proġett iġib fil-webroot fajls oħra li m'għandhom xejn x'jagħmlu hemmhekk:

- Folders ta' ambjenti ta' żvilupp bħal `.idea` jew `.vscode`, fejn estensjonijiet għall-upload ta' fajls xi drabi jaħżnu indirizzi ta' servers u dettalji tal-aċċess.
- `composer.json` u `composer.lock`, li jiżvelaw il-verżjonijiet eżatti tal-libreriji kollha u b'hekk jiffaċilitaw it-tfittxija għal vulnerabbiltajiet magħrufa.
- Konfigurazzjonijiet għal testijiet, għodod tal-build u pipelines, li jiżvelaw hostnames interni u proċessi.
- Bqija ta' sistemi operattivi bħal `.DS_Store`, li fihom listi ta' fajls ta' direttorji sħaħ.

Is-soluzzjoni hija l-istess bħal mal-folder `.git`: agħti biss dak li jrid ikun pubbliku, idealment permezz ta' sottofolder proprju bħala webroot. Min xorta waħda jibdel id-deployment għal pakketti, jistabbilixxi miegħu lista ta' fajls esklużi u jivverifikaha ma' kull għodda ġdida fil-proġett.

## Jekk il-folder kien miftuħ: ivverifika l-istorja u l-protokolli

Jekk jirriżulta li l-folder `.git` kien aċċessibbli, mexxu f'din l-ordni:

1. **Ibblokka l-aċċess** u erġa' ipprova l-verifika.
2. **Fittex fl-istorja** liema sigrieti qatt ġew ikkummittjati: fajls ta' konfigurazzjoni, `.env`, ċwievet, dumps tad-database.
3. **Biddel id-dettalji tal-aċċess**, kollha li nstabu fil-pass 2, anke jekk illum ma jibqgħux fil-kodiċi.
4. **Evalwa l-protokolli tal-aċċess**, jekk fajls taħt `/.git/` ġewx mitluba bi status 200 u minn liema indirizzi. Kif issir din turi [Evalwa l-logs tas-server tal-web wara attakk](https://phpsos.de/mt/ratgeber/logfiles-auswerten/).
5. **Ivverifika l-kodiċi sors b'mod mirat**, għax l-attakkanti issa jafuh. Dgħufijiet magħrufa għandhom jiġu rranġati bi prijorità.
6. **Iċċara l-protezzjoni tad-data**, jekk data personali kienet fl-istorja, pereżempju esportazzjonijiet tat-test. Il-valutazzjoni tagħmilha l-uffiċjal tal-protezzjoni tad-data tagħkom.

Għodod għat-tfittxija ta' sigrieti f'repositories wara jappartjenu b'mod permanenti fil-pipeline. OWASP jirrakkomanda verifiki bħal dawn espliċitament, bħala hook qabel il-kummit u fis-CI.

## Kif tgħin PHP SOS b'mod konkret?

- Nivverifikaw id-domains u s-subdomains kollha tagħkom għal folders aċċessibbli tal-ġestjoni tal-verżjonijiet.
- Nibblukkaw l-aċċess minnufih u nibdlu d-deployment għal pakketti mingħajr data tal-verżjonijiet.
- Infittxu fl-istorja għal sigrieti u nakkumpanjaw l-iskambju tal-aċċessi affettwati.
- Nevalwaw il-protokolli tal-aċċess u niddokumentaw jekk u meta ġiet imġiba data.

Dawn il-miżuri huma parti mill-[Hardening tas-server għal servers tal-web PHP](https://phpsos.de/mt/leistungen/server-haertung/) tagħna.


## Mistoqsijiet frekwenti

**Kif jinħoloq folder .git pubbliku?**  
Ġeneralment permezz ta' deployment b'git clone jew git pull direttament fil-webroot. Il-folder .git bl-istorja kollha tal-verżjonijiet imbagħad jinsab maġenb index.php, u mingħajr blokk is-server tal-web jagħti l-fajls tiegħu.

**Huwa biżżejjed li jitħassar il-folder .git?**  
Għall-futur iva, għall-passat le. Jekk il-folder kien aċċessibbli, il-kontenut jista' diġà jkun ġie kkupjat. Dettalji tal-aċċess li xi darba kienu fir-repository għalhekk għandkom tibdluhom.

**Jgħin li jitneħħew a posteriori dettalji tal-aċċess mill-istorja ta' Git?**  
Jevita li kopji ġodda jinkluduhom. Min diġà ġab ir-repository għad għandu l-istadji qodma. Id-deċiżiv għalhekk huwa l-iskambju tad-dettalji tal-aċċess, mhux biss il-kitba mill-ġdid tal-istorja.

**Dan jolqot ukoll sistemi oħra ta' ġestjoni tal-verżjonijiet?**  
Iva. Anke folders bħal .svn jew .hg fihom data tal-proġett u qatt m'għandhom ikunu aċċessibbli fil-webroot. Blokk ġenerali għal fajls u folders bi punt fil-bidu jkopri dawn il-każijiet kollha.

## Sorsi

- [OWASP Secrets Management Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html)
- [Dokumentazzjoni ta' Nginx](https://nginx.org/en/docs/)
- [Apache HTTP Server: dokumentazzjoni](https://httpd.apache.org/docs/)
