An cás reatha: PHP2Shell. Ceadaíonn dhá leochaileacht chriticiúla PHP (CVSS 9.2) cód mailíseach gan logáil isteach. Paistí ar fáil ón 21 Deireadh Fómhair 2026.Cad atá le déanamh anois →

Fillteán .git poiblí: sceitheadh sonraí nach dtugtar aird air

Cén fáth a bhféadfadh webroot a imscartar le Git an cód foinse iomlán a nochtadh lena stair, conas é sin a sheiceáil, a bhlocáil láithreach agus an t-imscaradh a thógáil go buan gan fillteán .git.

Staid Am léitheoireachta: 6 nóim.Forbairt shlán

Go achomair: Tarlaíonn fillteán .git poiblí nuair a imscartar suíomh gréasáin le git clone nó git pull go díreach sa webroot agus nach mblocálann an freastalaí gréasáin fillteáin i bhfolach. Ansin is féidir an cód foinse iomlán a ghlaoch lena stair leaganacha, sonraí rochtana a cuireadh isteach go luath san áireamh. Seiceáil do fhearainn le glao simplí, bac an rochtain láithreach, aistrigh an t-imscaradh go pacáistí gan .git agus malartaigh sonraí rochtana ón stair.

An cód foinse le tabhairt leat

Is é Git an gnáthuirlis do rialú leaganacha, agus d'fhoirne beaga is nádúrtha é a úsáid chun imscaradh freisin: nasc leis an bhfreastalaí, git pull, déanta. Oibríonn sé sin go hiontaofa agus go tapa. Ach tá fo-iarmhairt aige nach dtugann aon duine faoi deara go minic.

San eolaire tionscadail tá fillteán i bhfolach .git. Ní hamháin an staid reatha atá ann, ach gach comhad i ngach leagan a cuireadh isteach riamh, chomh maith le teachtaireachtaí commit, ainmneacha agus seoltaí ríomhphoist forbróirí agus tagairtí do fhreastalaithe. Má tá an fillteán seo sa webroot agus go seachadann an freastalaí gréasáin é, is féidir le gach duine é a ghlaoch.

Do ionsaitheoirí is bronntanas é. Leis an gcód foinse is féidir laigí a lorg go díreach, in ionad buille faoi thuairim a thabhairt fúthu ón taobh amuigh. Agus sa stair faightear go minic rudaí ar cosúil go raibh siad scriosta le fada: pasfhocal bunachair sonraí ón tús, eochair API, comhad tástála le sonraí custaiméirí.

An bhfuil do fhillteán .git poiblí? Conas é a sheiceáil

Tógann an tseiceáil soicindí agus ní athraíonn sí aon rud. Glaoigh comhad do gach fearann agus fo-fhearann atá i ngach stór Git:

# Ag súil le: 403 nó 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
# Ar an bhfreastalaí: An bhfuil fillteáin .git faoi bhun na webroots?
find /var/www /srv/www -maxdepth 4 -type d -name ".git" 2>/dev/null

Ciallaíonn stádas 200: tá an fillteán inrochtana. Tabhair aird ar fho-eolairí freisin. Uaireanta ní bhíonn an stór sa webroot féin, ach i bhfillteán forlíonta nó téama a chothabháiltear ar leithligh le Git.

Seiceáil timpeallachtaí stáitseála agus tástála freisin. Nuashonraítear iad níos minice le Git ná an táirgeadh agus is minic atá siad inrochtana ar fho-fhearainn is féidir a thomhas.

Láithreach: an rochtain a bhlocáil

Go dtí go n-athraítear an t-imscaradh, cuireann riail sa fhreastalaí gréasáin cosc ar rochtain ar fhillteáin rialaithe leaganacha. Clúdaíonn bac ginearálta do chomhaid i bhfolach, mar a thuairiscítear in Sonraí rochtana agus comhaid .env a chosaint i gceart, é seo freisin. An té ar mhaith leis rialú leaganacha amháin a bhlocáil go sonrach, úsáideann sé riail níos caol:

location ~ /\.(git|svn|hg)(/|$) {
    return 404;
}
RedirectMatch 404 /\.(git|svn|hg)(/|$)

Ina dhiaidh sin déan an tseiceáil thuas arís, agus glao fíor ón taobh amuigh: ní insíonn tástáil chumraíochta rathúil ach go bhfuil an chomhréir ceart, ní go dtagann an riail i bhfeidhm roimh rialacha eile do chomhaid statacha. I bpainéil ar nós Plesk nó cPanel, cuir an riail isteach sna treoracha breise atá ceaptha chuige, ionas nach gcaillfear í nuair a ghintear an chumraíocht arís.

Gníomhaigh láithreach

Má bhí an fillteán inrochtana, láimhseáil gach sonra rochtana a bhí sa stór ag am ar bith mar rud atá ar eolas. Ní leor bac amháin ansin, ní mór na luachanna a mhalartú.

Go buan: imscaradh gan .git sa webroot

Is cosaint é an bac, ní réiteach. Go buan ní bhaineann rialú leaganacha leis an bhfreastalaí táirgthe. Bealaí tástáilte, ag brath ar do thimpeallacht:

Modh Conas a oibríonn sé Oiriúnach do
Pacáiste tógála ón CI Tógann an líne phíobáin cartlann gan .git, díphacálann an freastalaí í i bhfillteán eisiúna nua Foirne le CI/CD
git archive gineann sé cartlann de staid gan sonraí leaganacha tionscadail bheaga gan líne phíobáin
rsync le heisiaimh ní aistríonn sé ach na comhaid is gá freastalaithe clasaiceacha
Íomhá coimeádáin cóipeáiltear cód isteach san íomhá le linn tógála, eisítear .git le .dockerignore oibriú coimeádán

Tá buntáiste eile ag fillteán eisiúna do gach leagan le nasc siombalach chuig an staid reatha: is féidir leat dul ar ais láithreach nuair a bhíonn fadhbanna ann. Do shuiteálacha coimeádán, déanann CI/CD: íomhánna PHP a atógáil go huathoibríoch cur síos ar conas tógálacha a dhéanamh inathdhéanta. Ba cheart a sheiceáil ansin freisin nach dtéann .git isteach san íomhá.

# Sampla: pacáiste de staid gan sonraí leaganacha a ghiniúint
git archive --format=tar.gz -o release.tar.gz HEAD

Comhaid tionscadail eile nach mbaineann leis an webroot

Is é an fillteán .git an sampla is cáiliúla, ach ní hé an t-aon cheann. An té a imscarann eolairí tionscadail iomlána, tugann sé comhaid eile isteach sa webroot nach mbaineann leis ann:

  • Fillteáin timpeallachtaí forbartha ar nós .idea nó .vscode, ina stórálann eisínteachtaí d'uaslódáil comhad seoltaí freastalaí agus sonraí rochtana uaireanta.
  • composer.json agus composer.lock, a nochtann leaganacha cruinne gach leabharlainne agus a éascaíonn dá bhrí sin cuardach ar laigí aitheanta.
  • Cumraíochtaí tástálacha, uirlisí tógála agus línte píobáin, a nochtann óstainmneacha agus próisis inmheánacha.
  • Iarsmaí de chórais oibriúcháin ar nós .DS_Store, ina bhfuil liostaí comhad d'eolairí iomlána.

Is é an réiteach an rud céanna agus leis an bhfillteán .git: ná seachaid ach an méid ba cheart a bheith poiblí, go hidéalach trí fho-fhillteán dá chuid féin mar webroot. An té a athraíonn an t-imscaradh go pacáistí ar aon nós, socraíonn sé liosta de chomhaid eisiata ag an am céanna agus seiceálann sé é le gach uirlis nua sa tionscadal.

Má bhí an fillteán oscailte: an stair agus na logaí a sheiceáil

Má thagann sé chun solais go raibh an fillteán .git inrochtana, lean an t-ord seo:

  1. Bac an rochtain agus déan an tseiceáil arís.
  2. Cuardaigh an stair le fáil amach cé na rúin a cuireadh isteach riamh: comhaid chumraíochta, .env, eochracha, dumpaí bunachair sonraí.
  3. Malartaigh sonraí rochtana, gach ceann a fuarthas i gcéim 2, fiú mura bhfuil siad sa chód inniu.
  4. Déan logaí rochtana a mheas le fáil amach ar glaodh comhaid faoi /.git/ le stádas 200 agus ó cé na seoltaí. Conas é sin a dhéanamh, léiríonn Logaí an fhreastalaí gréasáin a mheas tar éis ionsaí.
  5. An cód foinse a sheiceáil go sonrach, mar tá sé ar eolas ag ionsaitheoirí anois. Ba cheart laigí aitheanta a cheartú ar dtús.
  6. Cosaint sonraí a shoiléiriú, má bhí sonraí pearsanta sa stair, mar shampla easpórtálacha tástála. Déanann d'oifigeach cosanta sonraí an mheastóireacht.

Ba cheart uirlisí chun rúin a lorg i stórtha a bheith sa líne phíobáin go buan ina dhiaidh sin. Molann OWASP seiceálacha den sórt sin go sainráite, mar hook roimh an gcur isteach agus sa CI.

Conas a chabhraíonn PHP SOS go nithiúil?

  • Seiceálaimid do fhearainn agus d'fho-fhearainn go léir le haghaidh fillteáin rialaithe leaganacha atá inrochtana.
  • Blocálaimid an rochtain láithreach agus aistrímid an t-imscaradh go pacáistí gan sonraí leaganacha.
  • Cuardaímid an stair le haghaidh rúin agus tacaímid le malartú na rochtana lena mbaineann.
  • Déanaimid na logaí rochtana a mheas agus doiciméadaímid ar glaodh sonraí agus cathain.

Is cuid dár gcruatú freastalaí d'fhreastalaithe gréasáin PHP na bearta seo.

Ceisteanna coitianta

Conas a tharlaíonn fillteán .git poiblí?

De ghnáth trí imscaradh le git clone nó git pull go díreach sa webroot. Ansin luíonn an fillteán .git leis an stair leaganacha iomlán in aice le index.php, agus gan bac seachadann an freastalaí gréasáin a chomhaid.

An leor an fillteán .git a scriosadh?

Don todhchaí is leor, don am atá thart ní leor. Má bhí an fillteán inrochtana, d'fhéadfadh an t-ábhar a bheith cóipeáilte cheana. Dá bhrí sin ba cheart duit sonraí rochtana a bhí sa stór ag am éigin a mhalartú.

An gcabhraíonn sé sonraí rochtana a bhaint as stair Git ina dhiaidh sin?

Cuireann sé cosc ar chóipeanna nua iad a bheith iontu. An té a ghlaoigh an stór cheana, tá na seanstaideanna aige fós. Dá bhrí sin is é malartú na sonraí rochtana an rud cinniúnach, ní stair a athscríobh amháin.

An mbaineann sé seo le córais eile rialaithe leaganacha?

Baineann. Tá sonraí tionscadail i bhfillteáin ar nós .svn nó .hg freisin agus níor cheart iad a bheith inrochtana sa webroot riamh. Clúdaíonn bac ginearálta do chomhaid agus fillteáin le poncfhocal ag an tús na cásanna seo go léir.

Foinsí

Teagmháil láithreach

Cuireann gach uair an chloig leis. Scríobh chugainn anois.

Déan cur síos gearr ar an gcóras, leagan PHP agus an rud a thug tú faoi deara. Cuirfimid scéala chugat, soiléireoimid an cás agus oibreoimid go cianda go dtí go mbeidh an teagmhas dúnta agus doiciméadaithe.

Cabhair láithreach