Go achomair: Le PHP disable_functions cuireann tú feidhmeanna faoi ghlas trína ritheann PHP orduithe córais, mar shampla exec, shell_exec nó proc_open. Déanann sé sin an chéad chéim eile níos deacra d'ionsaitheoirí tar éis briseadh isteach. Ní oibríonn an socrú ach ó php.ini nó ón linn FPM, caithfidh sé teacht leis an bhfeidhmchlár agus ní chuireann sé nuashonrú ina ionad.
Cén fáth a bhfuil disable_functions ciallmhar anois go háirithe
Baineann PHP2Shell le cód mailíseach a rith go cianda gan logáil isteach. Tá an dá leochaileacht CVE-2026-109618 agus CVE-2026-109619 san ateangaire PHP féin, ceartaithe i PHP 8.5.12, 8.4.27, 8.3.36 agus 8.2.35. Is é an nuashonrú an t-aon bhealach chun iad a dhúnadh.
Tosaíonn an cruatú ag leibhéal níos déanaí. An té is féidir leis cód a rith ar fhreastalaí uair amháin, is gnách go dteastaíonn uaidh dul ar aghaidh: orduithe córais a thosú, uirlisí a luchtú, cúldoras buan a chur ar bun. Ritheann a lán de na céimeanna seo trí chúpla feidhm PHP. Má tá siad faoi ghlas, bíonn an bealach níos crua agus níos soiléire.
Mar sin ní hionadaí do phaistí é disable_functions, ach bloc tógála don chás go sleamhnaíonn rud éigin tríd d'ainneoin an chúraim ar fad. Baineann sé sin le leochaileachtaí amach anseo chomh maith le PHP2Shell.
An rud a dhéanann PHP disable_functions agus an rud nach ndéanann
Baineann an socrú na feidhmeanna a ainmnítear as an timpeallacht ama rite. Má ghlaonn script ar fheidhm faoi ghlas, scoireann PHP le earráid. Baineann an glas le haon chód a ritheann sa phróiseas PHP seo, an cód a cuireadh isteach san áireamh.
Ba cheart duit na teorainneacha a bheith ar eolas agat:
- Ní spás cosanta iomlán é an socrú. Is féidir le heisínteachtaí PHP, le hearráidí san ateangaire nó le cláir lasmuigh de PHP é a sheachaint.
- Ní chuireann sé cosc ar ionsaitheoir comhaid a léamh nó a scríobh a bhfuil rochtain ag úsáideoir PHP orthu. Tá cearta comhad agus scaradh freagrach as sin.
- Ní oibríonn sé ach ó php.ini nó mar
php_admin_value. Ní féidir é a shocrú leini_set(),.user.ininá.htaccess.
Is mó a bhaineann tú as disable_functions le php.ini glan, úsáideoirí ar leith do gach suíomh gréasáin agus cearta comhad srianta. Tá na bunphrionsabail sa treoir php.ini a chumrú go slán.
Cé na feidhmeanna ba cheart duit a chur faoi ghlas
Do ghnáthshuíomhanna gréasáin nach bhfuil orduithe córais de dhíth orthu, tá an liosta seo a leanas cruthaithe. Cuimsíonn sé feidhmeanna chun próisis a thosú agus chun próisis reatha a rialú.
| Grúpa | Feidhmeanna | Úsáid dhlisteanach thipiciúil |
|---|---|---|
| Orduithe a rith | exec, shell_exec, system, passthru |
Ionramháil íomhánna, cúltacaí trí script |
| Próisis a oscailt | proc_open, popen |
Composer, uirlisí PDF, seoladh ríomhphoist |
| Próisis a rialú | proc_nice, proc_terminate, proc_get_status |
Scuaine, jabanna cúlra |
| Bainistiú próiseas | pcntl_exec, pcntl_fork |
den chuid is mó ar an líne ordaithe amháin |
| Comharthaí agus cearta | posix_kill, posix_setuid |
annamh in oibríocht ghréasáin |
Mar chumraíocht tá cuma mar seo air:
; php.ini an mhóid oibriúcháin ghréasáin, m.sh. /etc/php/8.3/fpm/php.ini
disable_functions = exec,shell_exec,system,passthru,proc_open,popen,proc_nice,proc_terminate,proc_get_status,pcntl_exec,pcntl_fork,posix_kill,posix_setuid
Mura mbaineann an liosta le gach suíomh gréasáin ar an bhfreastalaí, socraigh í do gach linn FPM. Seiceáil tar éis athlódála cén liosta atá i bhfeidhm sa linn sin i ndáiríre:
; /etc/php/8.3/fpm/pool.d/meine-seite.conf (sliocht)
php_admin_value[disable_functions] = exec,shell_exec,system,passthru,proc_open,popen
An feidhmchlár a sheiceáil roimh ré: conas cur isteach a sheachaint
An té a shocraíonn an liosta gan seiceáil, tá an baol ann go stopfaidh laghdú méide íomhánna, sonraisc PDF nó seoladh ríomhphoist ag oibriú go tobann. Cuardaigh sa chód roimh ré mar sin na feidhmeanna lena mbaineann:
# Cá háit agus cé chomh minic a úsáidtear na feidhmeanna sa chód?
grep -rnoE "\b(exec|shell_exec|system|passthru|proc_open|popen|pcntl_exec)\s*\(" /var/www/meine-seite --include="*.php" \
| cut -d: -f1 | sort | uniq -c | sort -rn | head -30
Ní chiallaíonn torthaí go huathoibríoch go bhfuil an fheidhm ag teastáil le linn oibríochta. Seiceálann a lán leabharlann ar dtús an bhfuil feidhm ar fáil agus seachnaíonn siad í murach sin. Is é an rud atá cinntitheach ná tástáil i dtimpeallacht staging le gach próiseas tábhachtach: ordú, sonrasc, seoladh foirme, uaslódáil íomhá, tascanna sceidealaithe.
Má éilíonn feidhmchlár ceann de na feidhmeanna seo go riachtanach, seiceáil coinníollacha an chórais ón monaróir ar a leathanach oifigiúil. Is minic is féidir an tasc a aistriú chuig linn ar leith nó chuig script líne ordaithe nach bhfuil inrochtana tríd an ngréasán.
An socrú a ghníomhachtú agus an éifeacht a sheiceáil
Tar éis an athraithe caithfidh PHP an chumraíocht a léamh as an nua. Seiceáil ansin an luach sa mhód oibriúcháin de do shuíomh gréasáin, ní ar an líne ordaithe:
sudo systemctl reload php8.3-fpm
php-fpm8.3 -i | grep "^disable_functions"
# Seiceáil an logchomhad earráide le haghaidh glaonna ar fheidhmeanna faoi ghlas
sudo grep -i "has been disabled" /var/log/php/*.log | tail -20
Tá na teachtaireachtaí sa logchomhad earráide luachmhar níos déanaí freisin. Má thagann glaonna ar fheidhmeanna faoi ghlas chun solais go tobann, cé nach n-úsáideann d'fheidhmchlár iad, d'fhéadfadh sé cód a cuireadh isteach a léiriú. Conas leanúint ar aghaidh ansin, déanann an treoir Webshells a aithint agus a bhaint cur síos air.
Earráidí tipiciúla agus disable_functions á úsáid
Sa phraiticiúlacht is annamh a theipeann ar an gcruatú mar gheall ar an teicneolaíocht, ach mar gheall ar mhionrudaí. Tá na hearráidí seo thar a bheith forleathan:
- An comhad mícheart athraithe: Níl an liosta ach i php.ini na líne ordaithe, ritheann an suíomh gréasáin trí PHP-FPM agus fanann sé gan chosaint.
- Gan atosú: Tá an comhad ceart, ach tá na próisis reatha ag obair fós leis an seanchumraíocht.
- Rófhairsing faoi ghlas: Cuirtear feidhmeanna ar nós
ini_setnómailfaoi ghlas freisin, agus briseann próisis thábhachtacha gan aird. Is minic nach dtugtar faoi deara na hearráidí ach laethanta ina dhiaidh sin, mar shampla nuair nach dtagann deimhnithe orduithe. - Socraithe uair amháin, gan seiceáil riamh: Tar éis aistrithe, athraithe leagain PHP nó athshuiteála trí phainéal óstála, tá an liosta imithe.
- Mothú bréagach slándála: Tuigtear an glas mar ionadaí do nuashonruithe. Ní dhúnann sé bearna san ateangaire, áfach.
Cuir seiceáil an luacha ghníomhaigh isteach i do ghnáthamh tar éis gach nuashonraithe PHP dá bhrí sin. Is leor sracfhéachaint ghearr, is beag am a thógann sé agus cuireann sé cosc ar chruatú a chailleadh go ciúin.
Nuair atá roinnt suíomhanna gréasáin ar fhreastalaí amháin: cruthaigh linn ar leith le liosta ar leith do gach suíomh. Ina theannta sin teorannaíonn open_basedir na comhadlanna ar féidir le PHP rochtain a fháil orthu.
Conas a chabhraíonn PHP SOS go nithiúil?
- Seiceálaimid cód agus próisis d'fheidhmchláir le haghaidh úsáid feidhmeanna criticiúla.
- Socraímid liosta glais oiriúnach do gach suíomh gréasáin agus tástálaimid é roimh an dul beo.
- Comhcheanglaímid an glas le linnte, cearta comhad agus logáil i gcoincheap cruatúcháin comhsheasmhach.
- Doiciméadaímid na socruithe agus déanaimid monatóireacht ar an logchomhad earráide le haghaidh glaonna suntasacha.
Conas a oibríonn sé sin mar phacáiste iomlán, déanann an tseirbhís Cruatú freastalaí do fhreastalaithe gréasáin PHP cur síos air.
Ceisteanna coitianta
An féidir liom disable_functions a shocrú trí ini_set() nó .htaccess?
Ní féidir. Ní oibríonn an socrú ach ó php.ini nó mar php_admin_value sa linn FPM nó i gcumraíocht Apache. Ní féidir é a shocrú le linn ama rite, agus ní féidir leis an bhfeidhmchlár feidhmeanna faoi ghlas a scaoileadh saor arís.
An gcosnaíonn disable_functions in aghaidh PHP2Shell?
Ní chosnaíonn. Bíonn tionchar ag PHP2Shell ar an ateangaire PHP féin, ní dhúntar an leochaileacht ach leis an nuashonrú. D'fhéadfadh feidhmeanna faoi ghlas spás gluaiseachta ionsaitheora a theorannú tar éis leas rathúil a bhaint.
Cén fáth a dtaispeánann php -i liosta eile ná mo shuíomh gréasáin?
Léann an líne ordaithe php.ini dá cuid féin go minic. Don suíomh gréasáin is é cumraíocht PHP-FPM, mod_php nó LiteSpeed a chuireann i gcás. Seiceáil an luach dá bhrí sin sa mhód oibriúcháin trína ritheann do shuíomh gréasáin.
Cé na feidhmchláir a bhfuil proc_open nó exec uathu?
Braitheann sé ar an bhfeidhmchlár. Is tipiciúil ionramháil íomhánna trí chláir sheachtracha, giniúint PDF, seoladh ríomhphoist trí sendmail nó uirlisí ar nós Composer. Seiceáil sin sa chód agus i gcoinníollacha an chórais ón monaróir.