Lühidalt: Pilve- ja PaaS-pakkujate juures ei paika pakkuja automaatselt. Kui ta haldab PHP käituskeskkonda, uuendab ta seda, kuid sageli alles järgmise juurutusega. Kui ehitate pilte või ehitusi ise või käitate platvormi ise, peate uuesti ehitama ja juurutama. Määrav on alati käituskeskkond, mida teie veebisait parajasti teenindab.
PHP uuendus PaaS-is: kellele käituskeskkond kuulub?
Platvormiteenused, erialakeeles PaaS (Platform as a Service), võtavad ettevõtetelt serveri käitamise ära. Laadite üles koodi, platvorm ehitab ja käitab seda. PHP2Shelli puhul tekib sellest tüüpiline ebakindlus: kes peab PHP-d tegelikult uuendama?
Vercel toob selle oma PHP2Shelli bülletäänis välja: kohaliku arenduskeskkonna, rakenduse koodi või pluginate uuendus ei piisa. Otsustav on juurutuse PHP käituskeskkond, mis tegelikult päringutele vastab. Kas see käituskeskkond on paigatud, sõltub sellest, kes seda pakub ja millal see viimati ehitati.
Neli töömudelit võrdluses
Pakkujate nimetused erinevad. Paigaküsimuse mõttes saab enamiku pakkumisi paigutada ühte neist mudelitest:
| Mudel | Kes PHP-d uuendab? | Mida peate tegema |
|---|---|---|
| Pakkuja hallatav käituskeskkond | Pakkuja | Hankige kinnitus, vajaduse korral juurutage uuesti, et uus käituskeskkond kehtima hakkaks |
| Ehituspõhine käituskeskkond (buildpack) | Pakkuja annab uue versiooni, teie ehitus fikseerib selle | Käivitage uus ehitus, kontrollige versiooni ehituslogist |
| Oma konteineripilt | Teie | Ehitage pilt parandatud PHP-ga uuesti ja juurutage |
| Ise käitatav platvorm | Teie, nii platvormi kui rakenduste jaoks | Paigake platvorm ja iga rakendus eraldi |
Paljud ettevõtted kasutavad korraga mitut mudelit, näiteks hallatavat käituskeskkonda veebisaidi jaoks ja oma konteinereid sisemiste tööriistade jaoks. Iga rakendus vajab seetõttu oma vastuse.
Lõks peitub sõnas „hallatav“. Isegi kui pakkuja hooldab käituskeskkonda, töötab juba juurutatud rakendus sageli edasi seisuga, millega see ehitati. Uus versioon hakkab siis kehtima alles järgmise ehituse või juurutusega. Mõned platvormid hoiavad lisaks vanemaid juurutusi või eelvaatekeskkondi oma aadressidel kättesaadavana. Küsige seetõttu mitte ainult seda, kas pakkuja on paiganud, vaid ka seda, alates millal teie töötavad instantsid paiga kasutavad ja mis juhtub vanade juurutustega.
Mida Vercel ja Coolify PHP2Shelli kohta ütlevad
Kaks pakkujat on oma märkused avalikustanud. Need on õpetlikud, sest nimetavad selgelt oma kaitsemeetmete piire.
Vercel on oma bülletääni kohaselt enne avaldamist aktiveerinud oma veebirakenduse tulemüüris (WAF), veebipäringute filtris, kaitsereeglid. Need kehtivad automaatselt Verceli PHP-funktsioonidele ja päringutele, mille Vercel edastab välistele PHP serveritele. Samal ajal nõuab Vercel, et PHP käituskeskkond uuendataks kohe parandatud versioonile. Konteineriga juurutused tuleb uuesti ehitada uuendatud PHP baaspildiga ja uuesti juurutada. Päringuid, mis Verceli mööda lähevad ja jõuavad otse välisele PHP serverile, WAF ei kata.
Coolify, ise käitatav platvorm, oli oma nõuande kohaselt ise mõjutatud: kõik versiooni 4 harud. Esimeste parandatud seisudena nimetab Coolify 4.0.1, 4.1.3, 4.2.1, 4.3.24 ja 4.4.7 ning soovitab 4.4.7. Oluline on täiendus: Coolify uuendus ei uuenda PHP rakendusi, mida selle kaudu käitate. Nende käituskeskkondi või pilte peate uuendama eraldi ning uuesti ehitama või juurutama. Coolify andmetel kehtib see ka Coolify Cloudi klientidele ja ka Cloudflare'i taga, sest Cloudflare'i reeglid kontrollivad ainult liiklust, mis liigub läbi Cloudflare'i.
Mida Cloudflare'i reeglid suudavad, paigutab artikkel Cloudflare'i kaitsereeglid PHP2Shelli vastu oma kohale.
Nii kontrollite teenindavat käituskeskkonda
Järgmised sammud toimivad pakkujast sõltumata. Need sihivad tõendit, mitte tunnet.
- Loetlege kõik keskkonnad: toodang, staging, eelvaatejuurutused ja taustateenused nagu järjekorra töölised (queue worker). Igal keskkonnal võib olla erinev käituskeskkond.
- Lugege käituskeskkonna versioon keskkonna kaupa: pakkuja konsoolist, ehituslogist või projekti seadistusfailist.
- Kontrollige viimase juurutuse kuupäeva: kui see on enne 21.10.2026, töötab suure tõenäosusega vana käituskeskkond, kui pakkuja ei kinnita selgesõnaliselt muud.
- Vaadake töötavas instantsis järele: kui platvorm pakub konsooli, näitab järgmine käsk instantsi versiooni.
- Kaasake välised PHP serverid: serverid, kuhu platvorm päringuid edastab, vajavad oma uuendust ja ei tohiks olla otse internetist kättesaadavad.
# Töötava instantsi konsoolis (kui pakkuja seda pakub)
php -v
php -r 'echo PHP_VERSION, " ", PHP_SAPI, PHP_EOL;'
Oodatakse 8.5.12, 8.4.27, 8.3.36 või 8.2.35 või pakkuja kinnitatud backporti. Arvestage, et instantsi käsurida ei kasuta alati sama käituskeskkonda mis veebiprotsess. Ärge looge kontrolliks avalikult kättesaadavat phpinfo-faili. Kuidas versiooninumbrit ja backporti seisu õigesti tõlgendada, kirjeldab leht PHP versiooni ja paigatud seisu kontroll.
Uus juurutus ei kõrvalda kahjulikku tarkvara, mis on varem jõudnud püsimällu, nagu üleslaadimiskettad või andmebaas. Neid piirkondi kontrollige eraldi.
Pange vastutus kirja
PHP2Shell näitab, kui ebaselge on piir platvormi ja kliendi vahel sageli. Märkige iga rakenduse kohta, kes käituskeskkonda pakub, kes turvateadete korral uuesti ehitab ja kuidas pakkuja paiku teatab. Siia kuulub ka see, kellel on kiireloomulisel juhul ligipääs platvormi konsoolile ja kes tohib väljaspool tööaega uue ehituse käivitada.
Oma dokumentatsiooniks piisab lühikesest tabelist rakenduse kohta: platvorm, töömudel, PHP haru, viimase ehituse kuupäev, vastutaja. Kes järgmise teate korral selle nimekirja käepärast omab, säästab päevi, mille paljud meeskonnad pärast 21. oktoobrit otsimisele kulutasid. Konteinerrakenduste puhul kuulub siia ka see, kes baaspilti hooldab; tausta selgitab artikkel PHP konteinerites.
Hallatud serverite kohta, millel PaaS-i iseloomu ei ole, kehtivad sarnased küsimused, mille oleme kokku võtnud lehel Hallatud server: vastutuse selgitamine.
Kuidas PHP SOS konkreetselt aitab?
- Määramine: Seome iga teie rakenduse töömudeliga ja selgitame, kes PHP käituskeskkonda pakub.
- Tõendamine: Kontrollime keskkonna kaupa käituskeskkonda, ehituse kuupäeva ja juurutust ning dokumenteerime tulemuse.
- Uuesti ehitamine ja juurutamine: PHP-paigateenuse kaudu uuendame pilte ja ehitusi ning juurutame need kontrollitult.
- Lünkade sulgemine: Kontrollime, kas välised PHP serverid on otse kättesaadavad, ja piirame ligipääsu.
Korduma kippuvad küsimused
Kas minu PaaS-pakkuja paikab PHP automaatselt?
See sõltub mudelist. Kui pakkuja haldab käituskeskkonda, uuendab ta seda, kuid sageli alles uute juurutuste jaoks. Kui ehitate pilte või ehitusi ise, peate uuesti ehitama ja uuesti juurutama. Laske seis oma rakenduse kohta endale kinnitada.
Kas minu platvormipakkuja WAF piisab PHP2Shelli vastu?
Ei. Vercel ja Coolify kirjutavad otsesõnu, et kaitsereeglid ei asenda PHP käituskeskkonna uuendamist. Lisaks toimivad need ainult liiklusele, mis liigub läbi platvormi.
Kas pean pärast paika uuesti juurutama?
Sageli jah. Vercel nimetab konteineriga juurutuste puhul uuendatud PHP baaspildiga uuesti ehitamist ja uut juurutust. Ehituspõhistel platvormidel fikseeritakse käituskeskkond ehitamisel; paiga võtab üle alles uus ehitus.
Kasutan Coolifyt. Kas Coolify uuendusest piisab?
Ei. Coolify nõuande kohaselt uuendab uuendus ainult Coolifyt ennast. Teie rakenduste PHP käituskeskkondi või konteineripilte peate uuendama eraldi ning uuesti ehitama või uuesti juurutama.