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 →

Conas a ghineann PHP leathanach gréasáin: bealach iarratais

Cad a tharlaíonn idir an chliceáil agus an leathanach críochnaithe: freastalaí gréasáin, SAPI, tiomsaitheoir, OPcache agus Zend VM i seacht gcéim, agus cén fáth a dtéann PHP2Shell i ngleic leis an sreabhadh seo go díreach.

Staid Am léitheoireachta: 5 nóim.Eolas PHP

Go achomair: Nuair a iarrann brabhsálaí leathanach PHP, glacann an freastalaí gréasáin leis an iarratas agus cuireann sé ar aghaidh chuig PHP é trí chomhéadan (SAPI). Aistríonn PHP an script ina bytecode, ritheann sé san Zend Engine é agus seolann sé an toradh, HTML den chuid is mó, ar ais chuig an bhfreastalaí gréasáin. Ina dhiaidh sin glantar staid an iarratais ionas go dtosóidh an chéad cheann eile go glan.

Cad a tharlaíonn nuair a osclaíonn duine do shuíomh gréasáin?

Don chuairteoir is cliceáil amháin é. Ar an bhfreastalaí, ritheann a lán céimeanna i milleasoicindí. Má thuigeann tú an sreabhadh seo, tuigfidh tú níos fearr cén fáth a bhfuil nuashonruithe, atosuithe agus cumraíocht chomh tábhachtach agus cén fáth a bhfuil leochaileacht i PHP féin níos tromchúisí ná leochaileacht i mbreiseán.

Luann lámhleabhar PHP trí chuid atá riachtanach do shuíomh gréasáin PHP: ateangaire PHP (mar CGI nó mar mhodúl freastalaí), freastalaí gréasáin agus brabhsálaí. Is é an t-ateangaire an clár a léann agus a ritheann cód PHP. An chaoi a bhfuil sé ceangailte leis an bhfreastalaí gréasáin, socraíonn sin an mód oibriúcháin.

Conas a oibríonn PHP? Seacht gcéim d'iarratas

  1. Iarratas: Seolann an brabhsálaí iarratas HTTP, mar shampla GET /kontakt.php, chuig an bhfreastalaí.
  2. Freastalaí gréasáin: Glacann Apache, Nginx nó LiteSpeed leis an iarratas. Seachadann siad comhaid statacha ar nós íomhánna iad féin. I gcás comhaid .php, glaonn siad ar PHP.
  3. Aistriú tríd an SAPI: Aistríonn an comhéadan freastalaí (SAPI) sonraí an iarratais ar nós ceanntásca, paraiméadair agus sonraí foirme chuig PHP. Le PHP-FPM tarlaíonn sé sin tríd an bprótacal FastCGI, le mod_php go díreach i bpróiseas Apache. Sonraí ag SAPI mínithe.
  4. An t-iarratas a ullmhú: Cuireann PHP sonraí an iarratais in athróga ar nós $_GET, $_POST, $_COOKIE agus $_FILES agus cuireann sé cuimhne in áirithe don iarratas.
  5. Aistriú: Roinntear an script ina bhlocanna (tokens), tagann crann comhréire teibí (AST) as sin agus opcodes as an gcrann, cineál meaisínteanga do PHP. Má tá OPcache gníomhach, scipeáiltear an chéim seo má tá an script sa taisce cheana féin.
  6. Rith: Oibríonn meaisín fíorúil an Zend Engine trí na hopcodes, ceistíonn sé bunachair sonraí, léann sé comhaid agus gineann sé an t-aschur.
  7. Freagra agus glanadh: Téann an t-aschur ar ais tríd an SAPI chuig an bhfreastalaí gréasáin agus as sin chuig an mbrabhsálaí. Ina dhiaidh sin saorann PHP cuimhne an iarratais agus athshocraíonn sé an staid.

Tá an AST ann ó PHP 7. De réir an RFC a bhaineann leis, ghin an parsálaí na hopcodes go díreach le linn léamh roimhe sin; rinne scaradh i dtrí chéim an tiomsaitheoir níos éasca a chothabháil.

Sampla: an méid a fheiceann an script den iarratas

Taispeánann an script neamhdhíobhálach seo an fhaisnéis a fhaigheann PHP ón iarratas agus cén mód oibriúcháin ina bhfuil sé ag rith:

<?php
header('Content-Type: text/plain; charset=utf-8');

echo 'Betriebsart (SAPI): ' . PHP_SAPI . "\n";
echo 'PHP-Version: ' . PHP_VERSION . "\n";
echo 'Methode: ' . ($_SERVER['REQUEST_METHOD'] ?? '-') . "\n";
echo 'Speicher in dieser Anfrage: ' . memory_get_usage() . " Bytes\n";

Ar fhreastalaí le PHP-FPM, aschuireann PHP_SAPI an luach fpm-fcgi, faoi Apache le mod_php apache2handler. Ná fág comhaid seiceála den sórt sin ach go hachomair agus ná fág go buan iad san eolaire poiblí, mar cabhraíonn faisnéis leagain le hionsaitheoirí freisin chun iad féin a threorú.

Cá dtagann an taisce bytecode agus an JIT i gcúrsaí

Cosnaíonn an t-aistriú i gcéim 5 am. De réir an lámhleabhair, stórálann OPcache bytecode réamhthiomsaithe sa chuimhne roinnte agus sábhálann sé ar PHP na scripteanna a luchtú agus a bhriseadh síos le gach iarratas. Ó PHP 8.0 i leith, is féidir le tiomsaitheoir JIT cód meaisín fíor a ghiniúint as opcodes. De réir RFC an JIT, is cuid beagnach neamhspleách de OPcache é.

Céim Toradh An ndéantar é a thaisceadh?
Lexing sruth tokens ní dhéantar
Parsáil crann comhréire teibí (AST) ní dhéantar
Tiomsú opcodes (op-arrays do gach comhad agus feidhm) déantar, in OPcache
JIT (roghnach) cód meaisín déantar, i gcuimhne OPcache
Rith aschur an leathanaigh ní dhéantar

Ní bhaineann an taisce ach leis an gcód aistrithe. Ní roinntear sonraí an iarratais aonair, mar shampla ionchur foirme nó luachanna seisiúin, trí OPcache.

Cén fáth a dtéann PHP2Shell i ngleic leis an sreabhadh seo go díreach

Ní bhaineann an dá leochaileacht PHP2Shell le feidhmchlár amháin, ach leis an sreabhadh féin. I gcás CVE-2026-109618, féadann staid Out of Memory PHP a idirbhriseadh nuair nach bhfuil sonraí an iarratais ullmhaithe ach go páirteach, is é sin i gcéim 4. Le linn an ghlanta ina dhiaidh sin is féidir sonraí neamhbhailí a láimhseáil mar shonraí bailí.

I gcás CVE-2026-109619, féadann staid inmheánach iarratais maireachtáil tar éis na cuimhne a shaoradh. Féadann iarratas níos déanaí san oibrí céanna é a úsáid sular athshocraítear é. Baineann sé seo le céim 7, an glanadh. Tá cúlra ar an leathanach CVE-2026-109619 agus san alt faoin timthriall saoil iarratais.

Leanann sé as seo: ní bhíonn éifeacht ag bearta cosanta i gcód an fheidhmchláir, mar shampla breiseáin slándála, ach i gcéim 6. Le mod_php léiríodh exploit, de réir fhoireann PHP, fiú sula ritheann aon chód feidhmchláir. Ní bhíonn éifeacht ach ag an nuashonrú PHP go 8.5.12, 8.4.27, 8.3.36 nó 8.2.35 agus atosú gach próiseas PHP, mar leanann oibrithe buana ar aghaidh ag rith an tseanchóid ar shlí eile.

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

  • An sreabhadh a dhéanamh infheicthe: Faighimid amach cén mód oibriúcháin, cén chumraíocht agus cén taisce atá gníomhach i ndáiríre ar do fhreastalaí.
  • Nuashonrú ceart: Suiteálaimid an nuashonrú PHP agus deimhnímid trí na hamanna tosaithe nach bhfuil aon seanphróiseas ag rith a thuilleadh.
  • Na sraitheanna a chosaint: Mar chuid de chruatú freastalaí cuirimid teorainn le méideanna iarratas, le cuimhne agus le cearta san áit a n-oibríonn siad: os comhair an chóid feidhmchláir.
  • Rianta a sheiceáil: I gcás freastalaithe a bhí inrochtana gan chosaint, lorgaimid comharthaí briseadh isteach.

Ceisteanna coitianta

An ndéantar cód PHP a aistriú as an nua le gach glao?

Gan taisce, déantar. Briseann PHP an script ina chodanna, tógann sé crann comhréire agus gineann sé opcodes uaidh. Le OPcache gníomhach, bíonn na hopcodes sa chuimhne roinnte agus athúsáidtear iad fad nach bhfuil an comhad athraithe.

Cad a fhanann sa chuimhne tar éis iarratais?

I bprionsabal, glantar staid iarratais ag an deireadh ionas go dtosóidh an chéad iarratas eile go glan. Ní mhaireann ach rudaí mar OPcache nó naisc bhuana. Tá CVE-2026-109619 bunaithe ar an nglanadh seo go díreach.

Cén fáth a gcaithfear PHP a atosú tar éis nuashonraithe?

Le PHP-FPM agus mod_php, bíonn próisis ag rith go buan agus tá an seanchód cláir luchtaithe acu. Ní athraíonn comhaid nua ar an diosca aon rud faoi sin. Ní luchtaíonn ach atosú an cód ceartaithe.

An bhfuil freastalaí gréasáin gan PHP níos sábháilte?

Tá dromchla ionsaithe níos lú aige, toisc nach bhfreagraíonn aon loighic chláir d'iarratais. I gcás ábhar atá go hiomlán statach, is rogha dhílis é seo. Ach i gcás siopaí, foirmeacha agus logálacha isteach, tá teanga freastalaí-thaobh de dhíth, agus ansin tá tábhacht lena cothabháil.

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