Fil-qosor: Meta browser jitlob paġna PHP, is-server tal-web jaċċetta t-talba u jgħaddiha lil PHP permezz ta' interface (SAPI). PHP tittraduċi l-iskrip f'bytecode, teżegwih fiz-Zend Engine u tirritorna r-riżultat, normalment HTML, lis-server tal-web. Wara dan l-istat tat-talba jitnaddaf, biex it-talba li jmiss tibda nadifa.
X'jiġri meta xi ħadd jiftaħ il-websajt tagħkom?
Għall-viżitaturi huwa klikk. Fuq is-server jseħħu ħafna passi f'millisekondi. Min jaf dan il-proċess jifhem aħjar għaliex l-aġġornamenti, ir-restarts u l-konfigurazzjoni huma daqshekk importanti u għaliex vulnerabbiltà f'PHP nnifisha tiżen aktar minn vulnerabbiltà f'plugin.
Il-manwal ta' PHP isemmi tliet komponenti meħtieġa għal websajt bi PHP: l-interpretatur ta' PHP (bħala CGI jew modulu tas-server), server tal-web u browser. L-interpretatur huwa l-programm li jaqra u jesegwixxi l-kodiċi PHP. Il-mod kif huwa konness mas-server tal-web jiddetermina l-modalità tat-tħaddim.
Kif taħdem PHP? Seba' passi ta' talba
- Talba: Il-browser jibgħat talba HTTP, pereżempju
GET /kontakt.php, lis-server. - Server tal-web: Apache, Nginx jew LiteSpeed jaċċettaw it-talba. Fajls statiċi bħall-immaġini jwasslu huma stess. Għal fajls
.phpisejħu lil PHP. - Trasferiment permezz tas-SAPI: L-interface tas-server (SAPI) tgħaddi lil PHP id-dejta tat-talba bħall-headers, il-parametri u d-dejta tal-formoli. Ma' PHP-FPM dan isir permezz tal-protokoll FastCGI, ma' mod_php direttament fil-proċess ta' Apache. Dettalji taħt SAPI spjegat.
- Tħejjija tat-talba: PHP tpoġġi d-dejta tat-talba f'varjabbli bħal
$_GET,$_POST,$_COOKIEu$_FILESu tirriżerva memorja għat-talba. - Traduzzjoni: L-iskrip jitfarrak f'blokok bażiċi (tokens), minnhom titwieled siġra astratta tas-sintassi (AST) u minnha opcodes, tip ta' lingwa tal-magna għal PHP. Jekk l-OPcache huwa attiv, dan il-pass jiġi maqbuż meta l-iskrip diġà jkun fil-cache.
- Eżekuzzjoni: Il-magna virtwali taz-Zend Engine taħdem l-opcodes, tistaqsi databases, taqra fajls u toħloq l-output.
- Tweġiba u tindif: L-output jmur lura permezz tas-SAPI lejn is-server tal-web u minn hemm lejn il-browser. Wara dan PHP teħles il-memorja tat-talba u terġa' tissettja l-istat.
L-AST jeżisti minn PHP 7. Skont l-RFC relatat, qabel il-parser kien joħloq l-opcodes direttament waqt il-qari; is-separazzjoni f'tliet fażijiet għamlet il-kompilatur aktar faċli biex jinżamm.
Eżempju: x'jara l-iskrip mit-talba
L-iskrip li ġej, bla ħsara, juri liema informazzjoni PHP tirċievi mit-talba u f'liema modalità taħdem:
<?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";
Fuq server bi PHP-FPM, PHP_SAPI jagħti l-valur fpm-fcgi, taħt Apache b'mod_php apache2handler. Poġġu fajls bħal dawn ta' verifika biss għal żmien qasir u qatt b'mod permanenti fid-direttorju pubbliku, għax l-indikazzjonijiet tal-verżjoni jgħinu wkoll lill-attakkanti jorjentaw ruħhom.
Fejn jidħlu l-cache tal-bytecode u l-JIT
It-traduzzjoni fil-pass 5 tieħu ħin. L-OPcache, skont il-manwal, jaħżen bytecode diġà kkompilat fil-memorja kondiviża u b'hekk jiffranka lil PHP milli tgħabbi u tfarrak l-iskripts ma' kull talba. Minn PHP 8.0 'l quddiem kompilatur JIT jista' jipproduċi wkoll kodiċi tal-magna veru mill-opcodes. Skont l-RFC tal-JIT, huwa parti kważi awtonoma ta' OPcache.
| Fażi | Riżultat | Jinżamm fil-cache? |
|---|---|---|
| Lexing | fluss ta' tokens | le |
| Parsing | siġra astratta tas-sintassi (AST) | le |
| Kompilazzjoni | opcodes (op-arrays għal kull fajl u funzjoni) | iva, fl-OPcache |
| JIT (fakultattiv) | kodiċi tal-magna | iva, fil-memorja tal-OPcache |
| Eżekuzzjoni | output tal-paġna | le |
Il-cache tolqot biss il-kodiċi mittraduċi. Id-dejta tat-talba individwali, pereżempju dak li jiddaħħal fil-formoli jew il-valuri tas-sessjoni, ma tiġix kondiviża permezz tal-OPcache.
Għaliex PHP2Shell tolqot eżattament f'dan il-proċess
Iż-żewġ vulnerabbiltajiet ta' PHP2Shell ma jolqtux applikazzjoni, imma l-proċess innifsu. Fil-każ ta' CVE-2026-109618, kundizzjoni ta' out-of-memory tista' tinterrompi lil PHP waqt li d-dejta tat-talba tkun lesta biss parzjalment, jiġifieri fil-pass 4. Fit-tindif ta' warajha dejta invalida tista' mbagħad tiġi trattata bħala valida.
Fil-każ ta' CVE-2026-109619, stat intern ta' talba jista' jibqa' wara li l-memorja tkun ġiet meħlusa. Talba aktar tard fl-istess worker tista' tużah qabel ma jerġa' jiġi ssettjat. Dan jolqot il-pass 7, it-tindif. Sfond jinsab fuq il-paġna CVE-2026-109619 u fl-artikolu dwar iċ-ċiklu tal-ħajja tat-talba.
Minn dan isegwi: miżuri ta' protezzjoni fil-kodiċi tal-applikazzjoni, bħal plugins tas-sigurtà, jaħdmu biss mill-pass 6. Ma' mod_php, skont it-tim ta' PHP, intwera anki exploit qabel ma jibda jaħdem xi kodiċi tal-applikazzjoni. L-uniku li jaħdem huwa l-aġġornament ta' PHP għal 8.5.12, 8.4.27, 8.3.36 jew 8.2.35 u restart tal-proċessi kollha ta' PHP, għax workers li jgħixu fit-tul inkella jkomplu jesegwixxu l-kodiċi qadim.
Kif jgħin PHP SOS konkretament?
- Nuru l-proċess: Niddeterminaw liema modalità tat-tħaddim, liema konfigurazzjoni u liema cache huma attivi tassew fuq is-server tagħkom.
- Aġġornament korrett: Nitfgħu l-aġġornament ta' PHP u permezz tal-ħinijiet tal-bidu nivverifikaw li ma jkun għadu jaħdem ebda proċess qadim.
- Nassiguraw is-saffi: Fil-qafas tal-tisħiħ tas-server nillimitaw id-daqs tat-talbiet, il-memorja u d-drittijiet fejn jaħdmu: qabel il-kodiċi tal-applikazzjoni.
- Nivverifikaw it-traċċi: F'servers li kienu jintlaħqu mingħajr protezzjoni nfittxu sinjali ta' intrużjoni.
Mistoqsijiet frekwenti
Il-kodiċi PHP jiġi tradott mill-ġdid kull darba li jintalab?
Mingħajr cache, iva: PHP tfarrak l-iskrip, tibni siġra tas-sintassi u minnha toħloq opcodes. B'OPcache attiv l-opcodes jinsabu fil-memorja kondiviża u jerġgħu jintużaw sakemm il-fajl ma jinbidilx.
X'jibqa' fil-memorja wara talba?
Bħala prinċipju, l-istat ta' talba jitnaddaf fl-aħħar, biex it-talba ta' warajha tibda nadifa. Jibqgħu fit-tul biss affarijiet bħall-OPcache jew konnessjonijiet persistenti. Eżattament f'dan it-tindif tolqot CVE-2026-109619.
Għaliex PHP trid terġa' tinbeda wara aġġornament?
Ma' PHP-FPM u mod_php il-proċessi jaħdmu b'mod permanenti u diġà tellgħu l-kodiċi qadim tal-programm. Fajls ġodda fuq id-diska ma jibdlu xejn f'dan. Biss restart iniżżel il-kodiċi rranġat.
Server tal-web mingħajr PHP huwa aktar sigur?
Għandu inqas wiċċ ta' attakk, għax ebda loġika ta' programm ma tirreaġixxi għat-talbiet. Għal kontenut purament statiku din hija għażla vera. Imma għal ħwienet, formoli u logins tinħtieġ lingwa fuq in-naħa tas-server, u allura tgħodd il-manutenzjoni tagħha.