Go achomair: Socraigh session.upload_progress.enabled=0 i php.ini, sa linn PHP-FPM nó i gcumraíocht fhreastalaí Apache, riamh trí ini_set() ná .user.ini, agus atosaigh gach worker PHP ina dhiaidh sin. Ní bhíonn an beart buan go dtí go bhfuil an luach faoi ghlas i gcoinne athchumasaithe, go bhfuil sé i bhfeidhm i ngach modh oibriúcháin agus i ngach leagan suiteáilte PHP, agus go seiceáiltear arís é tar éis nuashonruithe.
Socrú beag le héifeacht dhúbailte
Is annamh a fuair socrú PHP aonair an oiread aird. Nuair a d'fhoilsigh php.net na paistí in aghaidh PHP2Shell an 21 Deireadh Fómhair 2026, bhí session.upload_progress.enabled=0 ar liosta na mbeart idirthréimhseach. Dhá lá ina dhiaidh sin tháinig an leid faoi CVE-2026-115560, agus ba é an leigheas molta an socrú céanna.
Shocraigh go leor riarthóirí go tapa é sna laethanta sin. An bhfuil sé i bhfeidhm i ngach áit, is ceist eile é sin. Tá bearnaí tipiciúla éasca a áireamh: níl an luach ach i gcumraíocht CLI, rinneadh dearmad ar an dara leagan PHP, nó scríobh painéal óstála os cionn an chomhaid an chéad uair eile a sábháladh é. Léiríonn an t-alt seo conas a chuireann tú an beart i bhfeidhm ionas go mbeidh sé i bhfeidhm fós i gceann trí mhí.
Tábhachtach roimh ré: ní ionann múchadh agus an nuashonrú PHP. De réir tuairiscí speisialaithe, ní dhúnann session.upload_progress.enabled=0 ina aonar an dá leochaileacht PHP2Shell. Míníonn an leathanach CVE-2026-115560: leid faoi dhul chun cinn uaslódála seisiúin cad go díreach a bhaineann le CVE-2026-115560.
An méid a dhéanann an fheidhm agus cé air a bhfuil sí de dhíth
Scríobhann dul chun cinn uaslódála seisiúin an dul chun cinn go leanúnach sa seisiún le linn uaslódála comhaid, ionas gur féidir le feidhmchlár barra dul chun cinn a thaispeáint. I PHP tá an fheidhm cumasaithe de réir réamhshocraithe. Tugann lámhleabhar PHP féin le fios go dtéann ainmneacha comhad agus réimsí a sholáthraíonn an seoltóir gan seiceáil isteach i stóras an tseisiúin, agus molann sé an fheidhm a mhúchadh mura n-úsáideann an feidhmchlár í.
An n-úsáideann d'fheidhmchlár í, faigheann tú amach le cuardach léitheoireachta amháin sa chód:
# Cuardaíonn úsáidí den fheidhm dul chun cinn i gcód an fheidhmchláir
grep -rn --include="*.php" -e "upload_progress" -e "PHP_SESSION_UPLOAD_PROGRESS" /var/www/
Mura bhfaigheann an cuardach tada, is féidir leat an fheidhm a mhúchadh gan iarmhairtí inbhraite. Má tá amais ann, ní chailleann an feidhmchlár ach an taispeáint dul chun cinn, ní an uaslódáil. Tomhaiseann foirmeacha nua-aimseartha an dul chun cinn sa bhrabhsálaí ar aon nós den chuid is mó.
session.upload_progress.enabled a shocrú san áit cheart
De réir lámhleabhar PHP tá an mód INI_PERDIR ag an socrú. Ciallaíonn sé sin: is féidir é a shocrú i php.ini, i gcumraíocht an fhreastalaí, i .htaccess (mod_php amháin) agus i .user.ini (FPM agus CGI amháin), ach ní ag am rite. Eisiann php.net .user.ini go sainráite mar áit don bheart. Léiríonn an tábla seo a leanas na háiteanna ciallmhara do gach modh oibriúcháin.
| Modh oibriúcháin | Áit mholta | An gcuireann sé cosc ar scríobh os a chionn? | Atosaigh ina dhiaidh |
|---|---|---|---|
| PHP-FPM | comhad linne le php_admin_flag |
tá | gach seirbhís FPM |
| PHP-FPM | php.ini den SAPI FPM | níl, d'fhéadfadh .user.ini scríobh os a chionn |
gach seirbhís FPM |
| Apache le mod_php | VirtualHost nó cumraíocht fhreastalaí le php_admin_flag |
tá | Apache go hiomlán |
| php-cgi, LiteSpeed, FrankenPHP | php.ini den am rite ábhartha | seiceáil de réir an struchtúir | gach próiseas den am rite |
| Íomhá Docker | comhad dá chuid féin in /usr/local/etc/php/conf.d/ le linn na tógála |
tá, mura gceadaítear scríobh os a chionn | coimeádán a athchruthú |
Tá an dá leagan láidre cosúil leis seo:
; PHP-FPM, m.sh. /etc/php/8.3/fpm/pool.d/seite1.conf
php_admin_flag[session.upload_progress.enabled] = off
# Apache le mod_php, sa VirtualHost nó ar fud an fhreastalaí
<IfModule php_module>
php_admin_flag session.upload_progress.enabled off
</IfModule>
Ina theannta sin is fiú an iontráil i php.ini gach SAPI gréasáin mar bhunluach. Ansin tá an socrú i bhfeidhm do linnte nua a chruthóidh duine éigin níos déanaí freisin. Cén fáth a ndéanann php_admin_flag an difríocht, déanann an t-alt php_admin_value: socruithe a chosc ar scríobh os a gcionn cur síos air.
Éifeachtacht a sheiceáil sa chomhthéacs gréasáin
Is minic a léann an líne ordaithe php.ini eile ná an freastalaí gréasáin. Dá bhrí sin is beag a chruthaíonn php -i. Ní thaispeánann php-fpm8.3 -i ach luachanna php.ini, ní na hiontrálacha ó na linnte. Ní iontaofa ach fiosrúchán a ritheann i ndáiríre tríd an linn.
Seo mar a théann tú ar aghaidh:
- Atosaigh gach seirbhís PHP, mar shampla
systemctl restart php8.3-fpmnó Apache le mod_php. Gan atosú leanann an seanluach ar aghaidh ag rith. - Cuir comhad seiceála gearr le hainm randamach sa webroot nach n-aschuireann ach an luach reatha.
- Glaoigh ar an gcomhad uair amháin tríd an bhfíorfhearann agus breac síos an toradh.
- Scrios an comhad láithreach arís agus déan an chéim arís do gach suíomh gréasáin agus gach linn.
<?php
// Comhad seiceála: ná fág ach go hachomair, scrios láithreach ina dhiaidh
header('Content-Type: text/plain');
echo 'session.upload_progress.enabled = ', var_export(ini_get('session.upload_progress.enabled'), true), "\n";
echo 'PHP ', PHP_VERSION, ' / SAPI ', PHP_SAPI, "\n";
Táthar ag súil le luach folamh nó '0'. Má tá '1' ann, níl do shocrú i bhfeidhm sa linn sin. Tar éis nuashonraithe PHP seiceáil ina theannta sin an bhfuil gach worker atosaithe, mar a thuairiscítear ag PHP-FPM agus gach worker a atosú.
Ná fág comhaid seiceála riamh. Nochtann siad leaganacha agus cumraíocht agus is sprioc is fearr leo iad scanadh uathoibrithe.
Ionas go bhfanfaidh an socrú buan
Ní ionsaitheoirí is cúis leis na sleamhnuithe ar ais is mó, ach an oibríocht. Cóipeáiltear linn nua ó sheanteimpléad, cruthaíonn nuashonrú pacáiste php.ini nua, nó athraíonn duine éigin an leagan PHP i bpainéal an óstála. In aghaidh sleamhnuithe den sórt sin cabhraíonn nósanna seasta.
- Gach leagan a chlúdach: Ar go leor freastalaithe ritheann roinnt leaganacha PHP in éineacht. Tá eolairí cumraíochta dá gcuid féin ag gach ceann agus teastaíonn an iontráil uaidh.
- Teimpléid a oiriúnú: Tá an luach i dteimpléid linnte, i róil Ansible, i Dockerfiles agus i dteimpléid painéil, ionas go bhfaigheann suíomhanna gréasáin nua go huathoibríoch é.
- Socruithe painéil a úsáid: I bpainéil óstála baineann an luach leis na treoracha breise a bhfuil an painéal ceaptha dóibh, nó scríobhfaidh an chéad athrú eile os cionn na lámhoibre.
- Seiceáil tar éis nuashonruithe: Baineann an tseiceáil ón roinn roimhe seo le seicliosta gach nuashonraithe PHP.
- Doiciméadú: Taifead an dáta, an freastalaí, na linnte agus an toradh. Cabhraíonn sé sin níos déanaí i gcoinne na bainistíochta, an árachóra nó na n-iniúchóirí.
An té nach n-úsáideann .user.ini ar chor ar bith, is féidir leis léamh comhad den sórt sin a mhúchadh go hiomlán le user_ini.filename = i php.ini. Ach baineann sé sin le gach socrú a chuireann feidhmchláir ansin. Déan tástáil ar an gcéim seo roimh ré dá bhrí sin, go háirithe i gcás CMS a scríobhann comhaid .user.ini dá gcuid féin.
Tá na bearta idirthréimhseacha eile ó php.net, mar shampla na teorainneacha do post_max_size agus an teorainn chuimhne trí cgroup, le fáil le chéile ag Gníomhartha láithreacha mura féidir leat paistiú fós. Conas a ordaíonn PHP a leibhéil chumraíochta go bunúsach, míníonn Míniú ar php.ini.
Conas a chabhraíonn PHP SOS go nithiúil?
- Stoc a thógáil: Faighimid amach gach leagan PHP, modh oibriúcháin agus linn ar do fhreastalaithe agus léimid na luachanna éifeachtacha sa chomhthéacs gréasáin.
- Socrú glan: Iontrálaimid an socrú faoi ghlas i linnte agus i gcumraíocht an fhreastalaí agus atosaímid gach worker ar bhealach rialaithe.
- Feidhm a thástáil: Seiceálaimid foirmeacha uaslódála agus bainistiú meán tar éis an aistrithe.
- Sleamhnuithe ar ais a chosc: Oiriúnaímid teimpléid, imscaradh agus socruithe painéil agus doiciméadaímid an staid faoi chuimsiú chruachan an fhreastalaí.
Ceisteanna coitianta
Cén fáth nach n-oibríonn session.upload_progress.enabled=0 trí ini_set()?
De réir lámhleabhar PHP baineann an socrú leis an mód INI_PERDIR. Mar sin ní féidir é a athrú ar chor ar bith ag am rite le ini_set(). Luann php.net php.ini, an linn FPM nó cumraíocht an fhreastalaí mar na háiteanna cearta agus eisiann sé .user.ini go sainráite.
An n-oibríonn uaslódálacha comhad fós tar éis é a mhúchadh?
Oibríonn. Ní mhúchtar ach an tuairisc dul chun cinn a scríobhann PHP sa seisiún le linn uaslódála. Leanann an uaslódáil féin ar aghaidh. Ní chuirtear isteach ach ar fheidhmchláir a thógann a mbarra dul chun cinn go beacht tríd an bhfeidhm PHP sin.
An féidir le feidhmchlár an fheidhm a chumasú arís?
Trí chomhad .htaccess le mod_php nó .user.ini le PHP-FPM, is féidir sin i bprionsabal, fad nach bhfuil an luach faoi ghlas. Cuireann tú cosc air le php_admin_flag sa linn nó i gcumraíocht Apache.
An gcaithfidh mé an luach a athshocrú tar éis an chéad nuashonraithe PHP eile?
Ní gá. Ní bhíonn an fheidhm de dhíth ar fhormhór na bhfeidhmchlár, agus molann lámhleabhar PHP féin í a mhúchadh i gcásanna den sórt sin. Seiceáil tar éis gach nuashonraithe an bhfuil an luach i bhfeidhm fós.