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 →

Sonraí rochtana agus comhaid .env a chosaint i gceart

Conas pasfhocail bunachair sonraí, eochracha API agus rúin eile a chosaint i dtionscadail PHP: comhaid .env lasmuigh den webroot, bac sa fhreastalaí gréasáin, cearta teoranta agus malartú ordúil tar éis teagmhais.

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

Go achomair: Cosnaíonn tú comhad .env trí gan é a bheith san eolaire inrochtana go poiblí ar chor ar bith: pointeálann an webroot chuig fofhillteán ar nós public/, agus tá an chumraíocht leibhéal amháin os a chionn. Ina theannta sin blocálann an freastalaí gréasáin gach comhad le poncfhocal ag an tús, níl an comhad inléite ach don úinéir agus do phróiseas PHP, agus ní bhaineann sé leis an stór Git riamh. Tar éis briseadh isteach meastar go bhfuil na sonraí rochtana go léir ann ar eolas agus déantar iad a mhalartú.

An comhad le heochracha an tí

Is maith le tionscadail PHP nua-aimseartha a rúin a stóráil i gcomhad darb ainm .env: pasfhocal an bhunachair sonraí, rochtain ar an bhfreastalaí ríomhphoist, eochracha API do sheirbhísí íocaíochta agus seoltóireachta, an eochair lena síníonn an feidhmchlár fianáin. Úsáideann frámaí ar nós Laravel agus Symfony an patrún seo, ghlac go leor forbairtí féin leis.

Tá an smaoineamh go maith: tá cumraíocht agus cód scartha, agus faigheann gach timpeallacht luachanna dá cuid féin. Éiríonn sé contúirteach nuair a thuirlingíonn an comhad san eolaire mícheart. Má tá sé sa webroot agus nach mblocálann an freastalaí gréasáin é, is leor glao amháin sa bhrabhsálaí chun gach rochtain a léamh ag an am céanna.

Ina theannta sin tá leaganacha le hainmneacha eile: .env.local, .env.production, config.local.php nó comhaid le sonraí rochtana ar sheirbhísí stórála. An méid atá curtha síos anseo do .env, baineann sé le gach comhad ina bhfuil rúin.

Lorgaíonn scanóirí uathoibrithe comhaid den sórt sin go leanúnach. Ní saintréith ionsaitheoirí aonair é sin, ach torann cúlra san idirlíon, cosúil leis na mórscanadh do leaganacha PHP gan phaiste.

Cá háit ar cheart an comhad .env a bheith

Is struchtúrach an beart is éifeachtaí: ní cheadaítear don fhreastalaí gréasáin ach an fillteán a sheachadadh ar cheart a bheith poiblí i ndáiríre. I Laravel agus Symfony is é sin an fillteán public/. Tá gach rud eile, is é sin cód, cumraíocht, logaí agus .env, os a chionn agus ní féidir iad a ghlaoch thar HTTP ar chor ar bith.

/srv/www/shop/
├── .env              ← neamh-inrochtana
├── config/
├── src/
├── vendor/
└── public/           ← an t-aon webroot
    ├── index.php
    └── assets/

Sa chleachtas pointeálann an webroot chuig an eolaire tionscadail féin go minic fós, mar shampla toisc go sonraíonn painéal óstála é sin nó toisc nár oiriúnaíodh cosán le linn aistrithe. Seiceáil dá bhrí sin i gcumraíocht an fhreastalaí gréasáin nó sa phainéal cá bpointeálann root nó DocumentRoot.

Comhad .env a chosaint: bac sa fhreastalaí gréasáin mar dara líne

Mura féidir an webroot a athrú, nó más mian leat cosaint bhreise, blocáil comhaid i bhfolach sa fhreastalaí gréasáin. Caithfidh an fillteán .well-known fanacht inrochtana ansin, toisc go n-úsáidtear é, i measc eile, chun teastais a eisiúint.

# Gach comhad agus fillteán le poncfhocal ag an tús a bhlocáil, seachas .well-known
location ~ /\.(?!well-known/) {
    deny all;
    return 404;
}
# Comhaid le poncfhocal ag an tús a bhlocáil
<FilesMatch "^\.">
    Require all denied
</FilesMatch>

Ní nochtann freagra 404 in ionad 403 go bhfuil an comhad ann. Seiceálann tú ón taobh amuigh an n-oibríonn an bac:

# Ag súil le: 403 nó 404, riamh 200
curl -s -o /dev/null -w "%{http_code}\n" https://www.example.de/.env
curl -s -o /dev/null -w "%{http_code}\n" https://www.example.de/.env.example
curl -s -o /dev/null -w "%{http_code}\n" https://www.example.de/.env.bak

Níl an dá líne dheireanacha de thaisme: cruthaítear cóipeanna ar nós .env.bak nó .env.old le linn obair chothabhála agus déantar dearmad orthu go minic. Tá tuilleadh faoi iarmhair den sórt sin in Comhaid chúltaca sa webroot.

Cearta, Git agus láimhseáil cóipeanna

Lasmuigh den webroot freisin baineann prionsabal na gceart is lú. Roinnt tástáilte:

  1. Is é an t-úinéir an t-úsáideoir imscartha, ní próiseas PHP.
  2. Is é an grúpa grúpa linne PHP-FPM, nach bhfuil ceadaithe ach le léamh; cearta 640.
  3. Gan rochtain scríofa don phróiseas PHP. Ní gá d'fheidhmchlár a shonraí rochtana féin a athrú.
  4. Gan fíorluachanna sa stór: ní chuirtear isteach ach .env.example le sealbhóirí áite, tá an fíorchomhad i .gitignore.
  5. Luachanna scartha do gach timpeallacht: úsáideann forbairt, stáitseáil agus táirgeadh rochtain dhifriúil ionas nach n-osclaíonn sceitheadh i dtimpeallacht thástála an táirgeadh.
chown deploy:shop-php /srv/www/shop/.env
chmod 640 /srv/www/shop/.env
# Seiceáil ar cuireadh an comhad isteach riamh
git log --all --oneline -- .env

Tabhair aird ar leathanaigh earráide freisin. Taispeánann frámaí athróga timpeallachta agus luachanna cumraíochta uaireanta sa mhód dífhabhtaithe; ar chóras táirgthe ní mór an mód seo a bheith múchta. Seiceáil é sin tar éis gach imscartha, mar d'fhéadfadh luach mícheart sa .env féin é a chasadh air arís.

Má thugann an t-ordú deireanach torthaí, tá na sonraí rochtana i stair Git agus meastar go bhfuil siad nochta, fiú mura bhfuil an comhad ann inniu. Cén fáth go bhfuil sé sin go háirithe íogair nuair a bhíonn an fillteán .git ar an bhfreastalaí, déanann Fillteán .git poiblí: sceitheadh sonraí nach dtugtar aird air cur síos air. Míníonn an treoir Cearta comhad ar an bhfreastalaí gréasáin bunphrionsabail faoi chearta.

Tábhachtach

Taispeánann comhaid tástála le phpinfo() athróga timpeallachta. An té a thugann rúin ar aghaidh mar athróga timpeallachta, nochtann sé iad trí chomhad tástála dearmadta. Tá cúlra le fáil in Comhaid phpinfo(): cén fáth a gcaithfidh siad imeacht.

Tar éis briseadh isteach: sonraí rochtana a mhalartú

Ní chosnaíonn aon bhac i gcoinne ionsaitheora atá ag rith cód ar an bhfreastalaí cheana féin. Caithfidh próiseas PHP a chumraíocht a léamh, mar sin is féidir le cód a chuirtear isteach sa phróiseas céanna é a dhéanamh freisin. Tar éis PHP2Shell, mar sin: mura féidir briseadh isteach a eisiamh, ní mór gach sonra rochtana ar an bhfreastalaí a láimhseáil mar rud atá ar eolas.

Cuimsíonn malartú ordúil pasfhocail bunachair sonraí, rochtain ar ríomhphost agus SMTP, eochracha API seirbhísí seachtracha, eochracha sínithe an fheidhmchláir agus rochtain ar sheirbhísí stórála. Ba cheart ord agus am a bheith pleanáilte: an té a mhalartaíonn ar dtús agus a ghlanann an freastalaí ina dhiaidh sin, b'fhéidir go dtugann sé na luachanna nua don ionsaitheoir ag an am céanna.

Teorannaíonn tú dochar sceite roimh ré, trí gach rún a cheadú don mhéid is gá amháin. Níl cearta ar bhunachair sonraí eile de dhíth ar úsáideoir bunachair sonraí an tsuímh. I gcás a lán soláthraithe is féidir eochracha API seirbhísí seachtracha a theorannú d'fheidhmeanna aonair nó do sheoltaí seoltóra, mar shampla seolaí a chruthú, ach gan íocaíochtaí amach a thionscnamh. Agus faigheann gach feidhmchlár rochtain dá chuid féin, in ionad roinnt suíomhanna a roinnt an chuntais ríomhphoist chéanna nó an eochair chéanna. Ansin bíonn sceitheadh teoranta do réimse soiléir, agus fanann an malartú in-láimhseáilte.

I dtimpeallachtaí coimeádán ní bhaineann an comhad .env leis an íomhá ná le clárlann inrochtana go poiblí. Eisigh é trí .dockerignore agus tabhair rúin ar aghaidh le linn rite amháin trí mheicníochtaí an ardáin.

Fadtéarmach is fiú breathnú ar stórais rúin lárnacha, mar a mholann OWASP: rúin in aon áit amháin, le loga rochtana, malartú rialta agus bailíocht chomh gearr agus is féidir.

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

  • Seiceálaimid ón taobh amuigh an bhfuil comhaid chumraíochta, cóipeanna agus comhaid i bhfolach de do shuíomhanna gréasáin inghlaoite.
  • Athraímid webroot, bacanna an fhreastalaí gréasáin agus cearta comhad ionas nach bhfuil rúin inrochtana thar HTTP a thuilleadh.
  • Seiceálaimid stórtha agus imscaradh le haghaidh sonraí rochtana a cuireadh isteach.
  • Tar éis teagmhais pleanálaimid agus tacaímid le malartú gach rochtana lena mbaineann san ord ceart.

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

Ceisteanna coitianta

An bhfuil comhad .env sa webroot poiblí go huathoibríoch?

Níl go huathoibríoch, ach go minic. Braitheann an bhfuil sé inghlaoite ar chumraíocht an fhreastalaí gréasáin. Ní chosnaíonn a lán gnáthchumraíochtaí ach comhaid .htaccess, ní comhaid eile le poncfhocal ag an tús. Cuireann tástáil le curl soiléireacht ar fáil.

An bhfuil athróga timpeallachta níos sábháilte ná comhad .env?

Ní go bunúsach. Tugann OWASP le fios go bhfuil athróga timpeallachta inléite do gach próiseas den úsáideoir agus gur féidir leo teacht chun solais i logaí nó i bhfuadar cuimhne. Seachnaíonn siad comhad sa webroot, áfach. Is fearr stórais rúin lárnacha, san áit a dtacaíonn an timpeallacht leo.

Cad atá le déanamh má bhí an comhad .env inghlaoite?

Gach sonra rochtana atá ann a mheas mar rud atá ar eolas agus iad a mhalartú: bunachar sonraí, ríomhphost, APInna, seirbhísí íocaíochta, eochracha an fheidhmchláir. Ina dhiaidh sin seiceáil sna logaí rochtana ar glaodh ar an gcomhad, agus i gcás sonraí pearsanta, cuir an oifigeach cosanta sonraí san áireamh.

An bhfuil an comhad .env le bheith sa stór Git?

Níl. Ní bheadh sa stór ach teimpléad gan fíorluachanna ar a mhéad, mar shampla .env.example. Eisítear an fíorchomhad trí .gitignore agus soláthraítear é scartha ar an bhfreastalaí.

An bhféadfadh phpinfo() sonraí rochtana a nochtadh?

D'fhéadfadh. Taispeánann phpinfo() athróga timpeallachta agus athróga freastalaí i measc eile. Má tá rúin ansin, taispeántar iad leo. Dá bhrí sin ní bhaineann comhaid tástála le phpinfo() le córas inrochtana riamh.

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