Sitwazzjoni attwali: PHP2Shell. Żewġ vulnerabbiltajiet kritiċi ta' PHP (CVSS 9,2) jippermettu kodiċi malizzjuż mingħajr login. Patches mill-21/10/2026.X'għandu jsir issa →

Kif tużaw PHP disable_functions sewwa

B'disable_functions issakkru funzjonijiet riskjużi ta' PHP. Kif tiffissaw il-lista skont l-applikazzjoni tagħkom mingħajr ma twaqqfu l-websajt.

Stat 5 min. qariGwidi

Fil-qosor: B'PHP disable_functions issakkru funzjonijiet li permezz tagħhom PHP jesegwixxi kmandi tas-sistema, pereżempju exec, shell_exec jew proc_open. Dan jagħmel il-pass li jmiss aktar diffiċli għall-attakkanti wara dħul. L-issettjar jaħdem biss mill-php.ini jew mill-pool FPM, irid jaqbel mal-applikazzjoni u ma jissostitwixxix aġġornament.

Għaliex disable_functions huwa sensat propju issa

F'PHP2Shell hawn l-eżekuzzjoni ta' kodiċi malizzjuż mill-bogħod mingħajr login. Iż-żewġ vulnerabbiltajiet CVE-2026-109618 u CVE-2026-109619 jinsabu fl-interpretatur ta' PHP innifsu, rranġati f'PHP 8.5.12, 8.4.27, 8.3.36 u 8.2.35. L-aġġornament huwa t-triq unika biex jingħalqu.

It-tisħiħ jibda livell wara. Min darba jista' jesegwixxi kodiċi fuq server ġeneralment irid ikompli: jibda kmandi tas-sistema, iniżżel għodod, jistabbilixxi backdoor permanenti. Ħafna minn dawn il-passi jgħaddu minn ftit funzjonijiet ta' PHP. Jekk dawn ikunu msakkra, it-triq issir iktar iebsa u iktar viżibbli.

disable_functions għalhekk mhuwiex sostitut tal-patches, imma element għall-każ li, minkejja kull prekawzjoni, xi ħaġa tgħaddi. Dan japplika għal vulnerabbiltajiet futuri bħalma japplika għal PHP2Shell.

X'jagħmel PHP disable_functions u x'ma jagħmilx

L-issettjar ineħħi l-funzjonijiet imsemmija mill-ambjent tat-tħaddim. Jekk skript isejjaħ funzjoni mblukkata, PHP jieqaf b'żball. Is-sakra tgħodd għal kull kodiċi li jaħdem f'dan il-proċess ta' PHP, għalhekk ukoll għal kodiċi introdott.

Il-limiti għandkom tkunu tafuhom:

  • L-issettjar mhuwiex spazju protett magħluq. Estensjonijiet ta' PHP, żbalji fl-interpretatur jew programmi barra minn PHP jistgħu jiċċirkumvenjuh.
  • Ma jipprevjenix li attakkant jaqra jew jikteb fajls li l-utent ta' PHP għandu aċċess għalihom. Għal dan jaħdmu d-drittijiet tal-fajls u l-iżolament.
  • Jaħdem biss mill-php.ini jew bħala php_admin_value. B'ini_set(), .user.ini jew .htaccess ma jistax jiġi ffissat.

Disable_functions jagħti l-aktar flimkien ma' php.ini nadifa, utenti separati għal kull websajt u drittijiet restrittivi tal-fajls. Il-bażijiet dwar dan jinsabu fil-gwida Kif tikkonfiguraw php.ini b'mod sikur.

Liema funzjonijiet għandkom issakkru

Għal websajts tipiċi mingħajr bżonn ta' kmandi tas-sistema, il-lista li ġejja ppruvat ruħha. Tinkludi funzjonijiet biex jinbdew proċessi u biex jiġu kkontrollati proċessi li jaħdmu.

Grupp Funzjonijiet Użu leġittimu tipiku
Eżekuzzjoni ta' kmandi exec, shell_exec, system, passthru Ipproċessar tal-immaġini, backups b'skript
Ftuħ ta' proċessi proc_open, popen Composer, għodod tal-PDF, bgħit tal-posta
Kontroll ta' proċessi proc_nice, proc_terminate, proc_get_status Kjuwijiet, jobs fl-isfond
Amministrazzjoni tal-proċessi pcntl_exec, pcntl_fork ġeneralment biss fuq il-linja tal-kmand
Sinjali u drittijiet posix_kill, posix_setuid rari fit-tħaddim tal-web

Bħala konfigurazzjoni dan jidher hekk:

; php.ini tal-modalità tat-tħaddim tal-web, pereżempju /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

Jekk il-lista ma tgħoddx għall-websajts kollha fuq is-server, iffissawha għal kull pool FPM. Wara r-reload ivverifikaw liema lista verament tgħodd f'dan il-pool:

; /etc/php/8.3/fpm/pool.d/meine-seite.conf (silta)
php_admin_value[disable_functions] = exec,shell_exec,system,passthru,proc_open,popen

Ivverifikaw l-applikazzjoni minn qabel: hekk tevitaw waqfiet

Min jiffissa l-lista mingħajr verifika jirriskja li tnaqqis tal-immaġini, fatturi PDF jew il-bgħit tal-posta f'daqqa jieqfu jaħdmu. Fittxu għalhekk minn qabel fil-kodiċi għall-funzjonijiet affettwati:

# Fejn u kemm-il darba jintużaw il-funzjonijiet fil-kodiċi?
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

Sejbiet ma jfissrux awtomatikament li l-funzjoni hija meħtieġa fit-tħaddim. Ħafna libreriji l-ewwel jivverifikaw jekk funzjoni hijiex disponibbli, u jaqilbu għal triq oħra jekk le. Id-deċiżiv huwa test f'ambjent staging b'kull proċess importanti: ordni, fattura, bgħit tal-formoli, upload tal-immaġini, kompiti skedati.

Jekk applikazzjoni teħtieġ bilfors waħda minn dawn il-funzjonijiet, ivverifikaw ir-rekwiżiti tas-sistema tal-manifattur fuq il-paġna uffiċjali tiegħu. Ħafna drabi l-kompitu jista' jinqaleb għal pool separat jew skript tal-linja tal-kmand li ma jintlaħaqx mill-web.

Attivaw l-issettjar u kkontrollaw l-effett

Wara l-bidla, PHP irid jerġa' jaqra l-konfigurazzjoni. Wara ivverifikaw il-valur fil-modalità tat-tħaddim tal-websajt tagħkom, mhux fuq il-linja tal-kmand:

sudo systemctl reload php8.3-fpm
php-fpm8.3 -i | grep "^disable_functions"
# Ivverifikaw il-log tal-iżbalji għal sejħiet ta' funzjonijiet imsakkra
sudo grep -i "has been disabled" /var/log/php/*.log | tail -20

Il-messaġġi fil-log tal-iżbalji huma siewja wkoll aktar tard. Jekk f'daqqa wieħed jidhru hemmhekk sejħiet ta' funzjonijiet imsakkra għalkemm l-applikazzjoni tagħkom ma tużahomx, dan jista' jindika kodiċi introdott. Kif tkomplu f'dak il-każ tiddeskrivi l-gwida Kif tagħrfu u tneħħu webshells.

Żbalji tipiċi fl-użu ta' disable_functions

Fil-prattika t-tisħiħ rari jfalli mit-teknika, imma minn dettalji żgħar. Dawn l-iżbalji huma partikolarment mifruxa:

  • Fajl żbaljat mibdul: Il-lista tinsab biss fil-php.ini tal-linja tal-kmand, il-websajt taħdem permezz ta' PHP-FPM u tibqa' mhix protetta.
  • L-ebda restart: Il-fajl huwa korrett, imma l-proċessi li jaħdmu għadhom jaħdmu bil-konfigurazzjoni l-qadima.
  • Sakra wiesgħa żżejjed: Funzjonijiet bħal ini_set jew mail jiġu msakkra wkoll, u proċessi importanti jieqfu mingħajr ma jidher. L-iżbalji spiss jinstabu biss wara jiem, pereżempju meta ma jaslux konfermi tal-ordni.
  • Iffissata darba, qatt ivverifikata: Wara trasferiment, bidla tal-verżjoni ta' PHP jew installazzjoni mill-ġdid permezz tal-panel tal-hosting, il-lista tkun sparixxiet.
  • Sens falz ta' sigurtà: Is-sakra tinftiehem bħala sostitut tal-aġġornamenti. Imma ma tagħlaq l-ebda vulnerabbiltà fl-interpretatur.

Inkludu għalhekk il-verifika tal-valur attiv fir-rutina tagħkom wara kull aġġornament ta' PHP. Ħarsa qasira hija biżżejjed, ma tiswiex kważi ħin u tevita li tisħiħ jintilef bil-kwiet.

Suġġeriment

B'diversi websajts fuq server wieħed: oħolqu għal kull websajt pool proprju b'lista proprja. B'mod komplementari, open_basedir jillimita d-direttorji li PHP jista' jaċċessa.

Kif tgħin PHP SOS b'mod konkret?

  • Niċċekkjaw il-kodiċi u l-proċessi tal-applikazzjoni tagħkom għall-użu ta' funzjonijiet kritiċi.
  • Niffissaw għal kull websajt lista ta' sakra xierqa u nittestjawha qabel ma tmur live.
  • Nikkombinaw is-sakra ma' pools, drittijiet tal-fajls u reġistrazzjoni f'kunċett konsistenti ta' tisħiħ.
  • Niddokumentaw l-issettjar u nissorveljaw il-log tal-iżbalji għal sejħiet suspettużi.

Kif dan jaħdem bħala pakkett sħiħ jiddeskrivih is-servizz Tisħiħ tas-server għal servers tal-web bi PHP.

Mistoqsijiet frekwenti

Nista' nissettja disable_functions permezz ta' ini_set() jew .htaccess?

Le. L-issettjar jaħdem biss mill-php.ini jew bħala php_admin_value fil-pool FPM jew fil-konfigurazzjoni ta' Apache. Waqt it-tħaddim ma jistax jiġi ffissat, u l-applikazzjoni lanqas ma tista' terġa' tippermetti funzjonijiet imsakkra.

disable_functions jipproteġi minn PHP2Shell?

Le. PHP2Shell jolqot l-interpretatur ta' PHP innifsu, il-vulnerabbiltà tingħalaq biss bl-aġġornament. Funzjonijiet imsakkra, madankollu, jistgħu jillimitaw il-marġni ta' attakkant wara sfruttament b'suċċess.

Għaliex php -i juri lista differenti mill-websajt tiegħi?

Il-linja tal-kmand ħafna drabi taqra php.ini proprja. Għall-websajt tgħodd il-konfigurazzjoni ta' PHP-FPM, mod_php jew LiteSpeed. Ivverifikaw għalhekk il-valur fil-modalità tat-tħaddim li permezz tagħha taħdem il-websajt tagħkom.

Liema applikazzjonijiet jeħtieġu proc_open jew exec?

Dan jiddependi mill-applikazzjoni. Tipiċi huma l-ipproċessar tal-immaġini permezz ta' programmi esterni, il-ġenerazzjoni ta' PDF, il-bgħit tal-posta permezz ta' sendmail jew għodod bħal Composer. Ivverifikaw dan fil-kodiċi u fir-rekwiżiti tas-sistema tal-manifattur.

Sorsi

Kuntatt immedjat

Kull siegħa tgħodd. Iktbu lilna issa.

Iddeskrivu fil-qosor is-sistema, il-verżjoni ta' PHP u dak li osservajtu. Nikkuntattjawkom, niċċaraw is-sitwazzjoni u naħdmu mill-bogħod sakemm l-inċident jingħalaq u jiġi ddokumentat.

Għajnuna immedjata