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 →

mod_php spjegat: PHP fil-proċess ta' Apache

Ma' mod_php, PHP tinsab f'kull proċess ta' Apache. Hija sempliċi, imma mhux flessibbli u wara PHP2Shell hija l-iktar modalità riskjuża. Hekk taħdem u hekk tagħarfuha.

Stat 5 min. qariGħarfien dwar PHP

Fil-qosor: mod_php huwa PHP bħala modulu fis-server tal-web Apache. Kull proċess ta' Apache imbagħad fih interpretatur sħiħ ta' PHP u jesegwixxi l-kodiċi PHP hu stess; l-SAPI tissejjaħ apache2handler. Huwa sempliċi biex jiġi stabbilit, imma jorbot lil PHP ma' Apache, normalment jeħtieġ il-prefork MPM u jippermetti kważi l-ebda separazzjoni bejn websajts. Il-manwal ta' PHP ma jirrakkomandahx għal installazzjonijiet ġodda, u ma' PHP2Shell it-tim ta' PHP jikklassifika r-riskju bħala l-ogħla ma' mod_php.

X'inhu mod_php?

Ma' mod_php, Apache jgħabbi PHP bħala modulu proprju fil-proċessi tiegħu. M'hemm l-ebda servizz separat ta' PHP: meta Apache jrid iwassal fajl .php, l-istess proċess li aċċetta t-talba jesegwixxi wkoll il-kodiċi PHP. Għal ħafna snin din kienet it-triq standard biex tħaddem PHP, u għadha mferrxa fuq servers eqdem u f'xi immaġini ta' Docker sal-lum.

Skont il-manwal ta' PHP, bħala modulu tas-server PHP taqra l-konfigurazzjoni tagħha darba biss, meta jinbeda s-server tal-web. Tibdiliet fil-php.ini u aġġornamenti tal-modulu għalhekk isiru effettivi biss wara restart ta' Apache.

Importanti biex wieħed jifhem: il-proċessi ta' Apache jgħixu żmien twil. Proċess jaċċetta ħafna konnessjonijiet wieħed wara l-ieħor qabel ma jiġi sostitwit; kemm, tirregola d-direttiva ta' Apache MaxConnectionsPerChild. L-interpretatur integrat ta' PHP jibqa' l-istess matul dan iż-żmien. Min jibdel il-librerija libphp fuq id-diska ma jibdel xejn fil-proċessi li jkunu qed jaħdmu.

Għall-maniġment u għar-responsabbli tal-proġetti dan jista' jinġabar hekk: ma' mod_php, is-server tal-web u PHP huma unità waħda. Min imiss waħda, jolqot lill-oħra. Aġġornament ta' PHP ifisser restart tas-server tal-web, żball f'PHP jaħdem bid-drittijiet tas-server tal-web, u separazzjoni bejn diversi websajts fuq l-istess server hija kważi impossibbli.

Kif jiġi integrat mod_php?

Il-manwal ta' PHP juri l-integrazzjoni f'żewġ passi: jgħabbu l-modulu u jiddefinixxu liema fajls PHP għandha tipproċessa.

LoadModule php_module modules/libphp.so

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

Il-manwal jirrakkomanda FilesMatch ma' SetHandler minflok AddType biss, biex fajls mtellgħa bħal bild.php.jpg ma jiġux eżegwiti bħala PHP. Taħt Debian u Ubuntu pakketti bħal libapache2-mod-php8.3 u l-kmandi a2enmod u a2dismod jieħdu f'idejhom dan ix-xogħol.

Jekk mod_php huwiex attiv jista' jiġi vverifikat bil-qari biss:

apachectl -M 2>/dev/null | grep -i php    # Debian/Ubuntu
httpd -M 2>/dev/null | grep -i php        # familja RHEL
apachectl -V | grep -i mpm               # MPM attiv (prefork, worker, event)

Prefork, Thread Safety u riżorsi

Apache jqassam it-talbiet permezz ta' Multi-Processing-Module (MPM). Skont il-manwal ta' PHP, mod_php jeħtieġ il-prefork MPM, sakemm PHP ma tkunx inbniet b'Zend Thread Safety (--enable-zts). Il-biċċa l-kbira tal-pakketti tad-distribuzzjonijiet huma mibnija mingħajr Thread Safety.

Prefork ifisser: proċess wieħed għal kull konnessjoni simultanja, u kull proċess iġorr interpretatur sħiħ ta' PHP. Anki talbiet għal immaġini jew fajls CSS jokkupaw b'hekk proċess bi PHP fuq dahru. Dan jiswa memorja u jillimita t-tagħbija li server jista' jġorr.

Karatteristika mod_php PHP-FPM
Fejn taħdem PHP? f'kull proċess ta' Apache f'servizz proprju
MPM ta' Apache normalment prefork event possibbli
Utent għal kull websajt le, kollox bħala utent ta' Apache iva, għal kull pool
Restart ta' PHP biss ma' Apache indipendenti minn Apache
Settings għal kull direttorju php_value f'.htaccess pool jew .user.ini

Il-manwal għalhekk jirrakkomanda għall-installazzjonijiet moderni kollha PHP-FPM b'mod_proxy_fcgi: ġestjoni aħjar tar-riżorsi, separazzjoni tal-proċessi, restart ta' PHP mingħajr restart ta' Apache u kompatibbiltà mal-event MPM, li minn Apache 2.4 huwa l-istandard. Il-bażi tinsab taħt PHP-FPM spjegat.

Settings b'.htaccess, php_value u php_admin_value

Ma' mod_php, settings ta' PHP jistgħu jiġu ssettjati direttament fil-konfigurazzjoni ta' Apache. Il-manwal jiddistingwi hawnhekk bejn modalitajiet ta' bidla: entrati b'INI_PERDIR jistgħu jkunu f'php.ini, .htaccess jew httpd.conf, entrati b'INI_SYSTEM biss f'php.ini jew httpd.conf.

# Fil-konfigurazzjoni tal-VirtualHost: imsakkar għall-applikazzjoni
php_admin_flag  display_errors off
php_admin_value upload_max_filesize 24M

# Possibbli f'.htaccess, imma l-applikazzjoni tista' tissorpassah
php_value max_execution_time 60

php_admin_value u php_admin_flag huma permessi biss fil-konfigurazzjoni tas-server, mhux f'.htaccess. Eżattament din id-distinzjoni hija importanti fil-miżuri temporanji dwar PHP2Shell, għax valuri bħal session.upload_progress.enabled ma jistgħux jerġgħu jiġu ssettjati mill-applikazzjoni.

mod_php u PHP2Shell: għaliex ir-riskju huwa l-ogħla

It-tim ta' PHP jikklassifika r-riskju minn PHP2Shell bħala l-ogħla ma' mod_php: hemmhekk intwera exploit qabel ma jibda jaħdem xi kodiċi tal-applikazzjoni. Plugins tas-sigurtà jew verifiki fiċ-CMS b'hekk jaslu tard wisq. Barra minn hekk, ma' mod_php, PHP taħdem bid-drittijiet u fil-memorja tas-server tal-web. Il-klassifikazzjoni dettaljata tinsab taħt Għaliex mod_php iġorr l-ogħla riskju.

Għall-operaturi għalhekk japplika:

  1. Aġġornaw il-modulu ta' PHP għal 8.5.12, 8.4.27, 8.3.36 jew 8.2.35 jew għal backport ikkonfermat.
  2. Erġgħu ibdew Apache kompletament, mhux biss reload, u kkontrollaw il-ħin tal-bidu tal-proċessi.
  3. Issettjaw valuri temporanji permezz ta' php_admin_value fil-konfigurazzjoni tas-server, jekk l-aġġornament ma jkunx possibbli għadu.
  4. Wara ppjanaw it-tranżizzjoni għal PHP-FPM, kif deskritt taħt Assigurar ta' Apache b'mod_php.

Kif jgħin PHP SOS konkretament?

  • Nagħrfu: Nivverifikaw fuq liema servers jaħdem mod_php, b'liema MPM u minn liema sors tal-pakketti.
  • Nippatchjaw: Naġġornaw il-modulu ta' PHP, nerġgħu nibdew Apache kompletament u niddokumentaw l-istat.
  • Nassiguraw it-tranżizzjoni: Fejn l-aġġornament huwa mblokkat, nissettjaw il-miżuri minn php.net b'mod imsakkar fil-konfigurazzjoni tas-server.
  • Nibdlu: Fil-qafas tal-tisħiħ tas-server nimmigraw b'mod ittestjat għal PHP-FPM b'pools proprji.

Mistoqsijiet frekwenti

Għaliex jissejjaħ mod_php jekk il-modulu jisimha php_module?

mod_php huwa l-isem kollokwjali għal PHP bħala modulu ta' Apache. Fil-konfigurazzjoni jitgħabba b'LoadModule; il-manwal ta' PHP jagħti bħala eżempju LoadModule php_module modules/libphp.so. Verżjonijiet eqdem kienu jużaw ismijiet bħal php7_module jew php5_module.

Għaliex mod_php jeħtieġ il-prefork MPM?

Skont il-manwal ta' PHP, mod_php jeħtieġ il-prefork MPM sakemm PHP ma tkunx inbniet b'Zend Thread Safety. Il-biċċa l-kbira tal-pakketti tad-distribuzzjonijiet huma mibnija mingħajr Thread Safety. Prefork jibda proċess proprju għal kull konnessjoni simultanja, u dan jeħtieġ aktar memorja.

Linji php_value f'.htaccess jaħdmu wkoll ma' PHP-FPM?

Le. php_value u php_flag f'.htaccess huma direttivi ta' Apache tal-modulu ta' PHP u jaħdmu biss ma' mod_php. Taħt PHP-FPM settings bħal dawn jappartjenu fil-pool jew, għal valuri permessi, f'.user.ini.

Irrid inneħħi mod_php minnufih?

L-ewwel jiġi l-aġġornament ta' PHP b'restart sħiħ ta' Apache. Il-bidla għal PHP-FPM wara dan hija raġonevoli, imma għandha tiġi ppjanata u ttestjata. Ma tagħlaqx PHP2Shell, għax PHP-FPM hija wkoll affettwata.

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