Trumpai: ar PHP atnaujinimas, ar backport yra teisingas pasirinkimas, priklauso nuo to, kiek dar turi veikti jūsų sistema ir kaip gerai backport įrodytas. Savo distribucijos backport palaikomoje operacinėje sistemoje yra visavertis kelias. Šaltinio backport, trečiųjų šalių šaltiniai ir komercinė ilgalaikė pagalba PHP 8.1 ir senesnėms yra tiltai su galiojimo pabaiga. Ilgam laikui padeda tik perėjimas prie PHP versijos, kurią PHP projektas dar oficialiai palaiko.
Kodėl klausimas po PHP2Shell skubus
2026-10-21 PHP projektas PHP2Shell ištaisė versijose 8.5.12, 8.4.27, 8.3.36 ir 8.2.35. PHP 8.1 ir senesnėms oficialių išleidimų nebėra, yra tik minimalūs šaltinio backport 7.4, 8.0 ir 8.1. Pasak specializuotos spaudos, paveiktos beveik visos versijos iki pat PHP 5.4.
Todėl daugelis senų sistemų eksploatuotojų stovi prieš tą patį klausimą: ar pakanka kaip nors užlopyti spragą, ar dabar reikia atnaujinimo, kuris metų metus buvo atidedamas? Ką atnaujinimas reiškia praktiškai, aprašo mūsų pasiūlymas PHP 8.1 ir senesnių migracija. Kas galioja be oficialaus atnaujinimo, rasite skyriuje PHP 8.1 ir senesnės: kas dabar galioja. Šis straipsnis padeda svarstyti tarp jų.
Kokių rūšių backport yra
„Backport“ yra bendras terminas. Visada turima omenyje, kad pataisa iš naujesnės versijos perkeliama į senesnę. Tačiau kas tai daro ir kaip gerai patikrinta, labai skiriasi.
- Distribucijos backport: Debian, Ubuntu, Red Hat ir kiti perima saugumo pataisas į savo palaikomų leidimų PHP paketus. Versijos numeris dažnai lieka tas pats; pasak pranešimų, Ubuntu 24.04 po atnaujinimo toliau rodo 8.3.6. Pataisa įrodoma per paketo pakeitimų žurnalą ir distribucijos saugumo pranešimus.
- Trečiasis šaltinis: sury.org saugykla, kurią tvarko Ondřej Surý, pasak pranešimų, pateikė kompiliacijas visoms šakoms nuo 5.6 iki 8.5. Tai nėra Debian saugumo archyvas. Smulkmenos pateiktos skyriuje sury.org saugykla.
- PHP projekto šaltinio backport: 7.4, 8.0 ir 8.1 yra minimalios pataisos šaltinio kode, bet ne paruošti išleidimai. Kas jomis naudojasi, PHP turi pats kompiliuoti, testuoti ir ateityje prižiūrėti.
- Komercinė ilgalaikė pagalba: teikėjai, tokie kaip TuxCare ELS ar Zend/HeroDevs, siūlo senų versijų priežiūrą. Ar ir kada jie apima PHP2Shell, turi būti patvirtinta raštu; žinomuose šaltiniuose tai nebuvo įrodyta. Daugiau skyriuje Ilgalaikė pagalba senoms PHP versijoms.
PHP atnaujinimas ar backport: palyginimas
| Kriterijus | Atnaujinimas į palaikomą versiją | Backport (pagal rūšį) |
|---|---|---|
| Apsauga nuo PHP2Shell | Taip, su 8.2.35, 8.3.36, 8.4.27 ar 8.5.12 | Taip, jei išsamus ir įrodytas |
| Būsimi saugumo atnaujinimai | Oficialiai iki versijos palaikymo pabaigos | Tik tol, kol atitinkamas teikėjas prižiūri |
| Įrodymas | Versijos numeris ir paleidimas iš naujo | Paketo pakeitimų žurnalas su CVE numeriais, teikėjo patvirtinimas |
| Darbo sąnaudos dabar | Vidutinės ar didelės, reikia suderinamumo testų | Mažos esant distribucijai, didelės savadarbiam |
| Darbo sąnaudos vėliau | Mažos iki kito versijos šuolio | Auga su kiekviena nauja spraga |
| Rizika programai | Nesuderinamumai su senu kodu ir plėtiniais | Maža, elgsena iš esmės išlieka |
| Tinkamumas kaip ilgalaikis sprendimas | Taip | Tik distribucijos backport palaikomos operacinės sistemos rėmuose |
Eilutė „Darbo sąnaudos vėliau“ yra svarbiausia. PHP2Shell nebus paskutinė spraga. Kiekvienas mėnuo versijoje be oficialaus palaikymo reiškia, kad kitas pranešimas vėl iškels tą patį klausimą.
Kokia tikslinė versija atnaujinant?
Pasak php.net, kiekvienai PHP šakai galioja: dveji metai aktyvaus palaikymo, po to dveji metai tik saugumo pataisų. Iš to gaunamos šios saugumo palaikymo pabaigos datos:
| Versija | Saugumo palaikymas iki |
|---|---|
| PHP 8.2 | 2026-12-31 |
| PHP 8.3 | 2027-12-31 |
| PHP 8.4 | 2028-12-31 |
| PHP 8.5 | 2029-12-31 |
Atnaujinimas į 8.2 todėl tėra trumpa tarpinė stotelė. Kas vis tiek migruoja, turėtų taikytis į versiją su ilgesniu horizontu, jei CMS, parduotuvė ir plėtiniai ją palaiko. Tai tikrinkite gamintojo sistemos reikalavimuose, o ne iš atminties. Kaip veikia išleidimo ciklas, paaiškina PHP versijos ir išleidimo ciklas.
Kad ir kuris kelias: po įdiegimo visi PHP procesai turi būti paleisti iš naujo. Backport, kuris tik guli diske, neapsaugo, kol atmintyje veikia seni darbiniai procesai.
Pragmatiška eilės tvarka senoms sistemoms
- Nedelsiant: nustatyti php.net pereinamąsias priemones arba laikinai atjungti sistemą nuo tinklo, jei nėra įrodytos pataisos.
- Per artimiausias dienas: įdiegti įrodytą backport, jei įmanoma, iš savo distribucijos arba su teikėjo rašytiniu patvirtinimu.
- Lygiagrečiai: patikrinti programos suderinamumą su palaikoma versija ir nustatyti grafiką.
- Per artimiausius mėnesius: atnaujinti į tikslinę versiją, parengtą bandomojoje kopijoje, su atsarginiu planu.
Backport matyti kaip tiltą, o ne tikslą, yra lemiama mintis.
Kada tam nereikia paslaugų teikėjo
Jei jūsų serveris veikia palaikomame Debian, Ubuntu ar RHEL ir distribucija pateikia backport, pakanka įprasto atnaujinimo su paleidimu iš naujo ir žvilgsnio į pakeitimų žurnalą. Tai patyręs administratorius įveikia vienas. Pagalba verta savadarbiams sprendimams, trečiosioms šalims, labai senoms versijoms ar programai, kurios suderinamumo niekas nebeapžvelgia.
Kaip PHP SOS padeda konkrečiai?
- Tikriname, kokios PHP versijos ir paketų šaltiniai veikia jūsų serveriuose ir ar yra įrodyta pataisa.
- Įdiegiame backport, paleidžiame iš naujo ir dokumentuojame įrodymą per pakeitimų žurnalą.
- Išbandome jūsų programą kopijoje su tikslinė versija ir įvardijame nesuderinamumus.
- Planuojame ir lydime atnaujinimą PHP 8.1 ir senesnių migracijos rėmuose.
Išvada
Distribucijos backport yra visavertis kelias, visi kiti backport yra tiltai. Kas užstrigo ties PHP 8.1 ar senesne, backport turėtų naudoti laikui atnaujinimui laimėti, o ne kad jį dar labiau atidėtų.
Dažni klausimai
Ar backport toks pat saugus kaip atnaujinimas į naują versiją?
Konkrečiai ištaisytai spragai backport gali būti lygiavertis, jei yra išsamus ir įrodytas. Tačiau jis ištaiso tik tai, kas buvo perkelta atgal. Perėjimas prie palaikomos versijos papildomai suteikia visus būsimus oficialius saugumo atnaujinimus.
Kaip atpažinti, kad mano backport apima PHP2Shell?
Pagal paketo pakeitimų žurnalą: ten turėtų būti nurodyti CVE numeriai CVE-2026-109618 ir CVE-2026-109619. Debian ir Ubuntu tai parodo apt-get changelog, RHEL šeimoje rpm -q --changelog. Vien versijos numeris nėra įrodymas.
Kiek laiko PHP 8.2 dar gaus saugumo atnaujinimus?
Pasak php.net, PHP 8.2 saugumo palaikymas baigiasi 2026-12-31. Kas šiandien atnaujina į 8.2, turėtų iškart suplanuoti ir kitą žingsnį.
Ar verta komercinė ilgalaikė pagalba senoms PHP versijoms?
Ji gali būti tiltas, kai atnaujinti trumpuoju laikotarpiu neįmanoma. Leiskite raštu patvirtinti, ar ir nuo kada PHP2Shell apimta. Iki šiol žinomuose šaltiniuose tai nebuvo įrodyta.