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 PHP toħloq paġna tal-web: it-triq ta' talba

X'jiġri bejn il-klikk u l-paġna lesta: server tal-web, SAPI, kompilatur, OPcache u Zend VM f'seba' passi, u għaliex PHP2Shell tolqot eżattament f'dan il-proċess.

Stat 5 min. qariGħarfien dwar PHP

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

  1. Talba: Il-browser jibgħat talba HTTP, pereżempju GET /kontakt.php, lis-server.
  2. Server tal-web: Apache, Nginx jew LiteSpeed jaċċettaw it-talba. Fajls statiċi bħall-immaġini jwasslu huma stess. Għal fajls .php isejħu lil PHP.
  3. 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.
  4. Tħejjija tat-talba: PHP tpoġġi d-dejta tat-talba f'varjabbli bħal $_GET, $_POST, $_COOKIE u $_FILES u tirriżerva memorja għat-talba.
  5. 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.
  6. Eżekuzzjoni: Il-magna virtwali taz-Zend Engine taħdem l-opcodes, tistaqsi databases, taqra fajls u toħloq l-output.
  7. 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.

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