Go achomair: I Kubernetes tá PHP san íomhá coimeádáin, ní sa chrios. Tar éis PHP2Shell ní mór duit gach íomhá PHP Kubernetes a atógáil le leagan PHP ceartaithe, gach workload lena mbaineann a chur amach as an nua agus ina dhiaidh sin an staid a sheiceáil i ngach pod atá ag rith. Ní athraíonn íomhá bhunúsach nuashonraithe sa registry amháin aon rud ar pods atá ag rith.
Cén fáth nach bpaistíonn an crios é féin
Bainistíonn Kubernetes coimeádáin, ach ní thugann sé aire do na bogearraí iontu. Ritheann gach pod leis an íomhá as ar tosaíodh é go dtí go gcuirtear ceann eile ina áit. An té a oibríonn feidhmchláir PHP sa chrios, tá freagracht air as na híomhánna dá bhrí sin, fiú má ritheann an crios mar sheirbhís bhainistithe ag soláthraí scamall. Cothaíonn an soláthraí an t-eitleán rialaithe agus na nóid de ghnáth, ní íomhánna na gcliant.
Cuimsíonn PHP2Shell CVE-2026-109618 agus CVE-2026-109619, an bheirt acu le CVSS v4.0 9.2. Bíonn tionchar, i measc nithe eile, ar PHP-FPM, ar Apache le mod_php agus ar FrankenPHP, is é sin na gnáthmhodhanna oibriúcháin in íomhánna PHP. Tá PHP 8.5.12, 8.4.27, 8.3.36 agus 8.2.35 ceartaithe.
Stoc: cén íomhá PHP Kubernetes atá ag rith cén áit?
Tosaigh le liosta de gach íomhá sa chrios. Ní léann na horduithe seo a leanas ach. Is samplaí iad ainmneacha spásanna ainmneacha, deployments agus coimeádán.
# Gach íomhá de gach pod, grúpáilte
kubectl get pods -A -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{range .spec.containers[*]}{.image}{" "}{end}{"\n"}{end}'
# Digest íomhá atá ag rith i ndáiríre do gach coimeádán
kubectl get pods -A -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{range .status.containerStatuses[*]}{.imageID}{" "}{end}{"\n"}{end}'
# Leagan PHP i bpod atá ag rith
kubectl exec -n shop deploy/web -c php -- php -v
Smaoinigh seachas deployments ar StatefulSets, DaemonSets, CronJobs agus coimeádáin init freisin. I gcrios níos mó cabhraíonn scanóirí íomhá, a chuardaíonn na híomhánna le haghaidh CVEnna aitheanta. I gcás pacáistí dáilte laistigh den íomhá, baineann an rud céanna leis mar is gnách: is féidir le backport uimhir an leagain a fhágáil gan athrú, agus sa chás sin is é changelog an phacáiste a chuireann.
Íomhánna a atógáil
Nuashonraigh an íomhá bhunúsach ar dtús. Má úsáideann tú íomhánna oifigiúla PHP, roghnaigh leagan le leagan PHP ceartaithe. Ansin tóg d'íomhá féin as an nua, gan seanbhunchiseal a ghlacadh ón taisce.
# Sampla: íomhá a thógáil as an nua, íomhá bhunúsach a tharraingt go gníomhach
docker build --pull --no-cache -t registry.example.com/shop/web:2026-10-25 .
# Leagan PHP san íomhá nua a sheiceáil roimh an rollout
docker run --rm registry.example.com/shop/web:2026-10-25 php -v
Ná bí ag brath ar chlibeanna mar latest ná ar phríomhleagan amháin. Sa mhanifest, tagair, más féidir, do digest na híomhá nua, ionas go mbeidh sé soiléir cén staid atá á cur amach. Má ritheann an soláthar trí GitOps nó Helm, athraigh an íomhá ansin, ionas nach ndéantar an staid a athshocrú ag an gcéad sioncrónú eile.
Rollout agus rialú
Cuireann rollout nua gach pod de workload in ionad a chéile céim ar chéim. Ina dhiaidh sin seiceálann tú an staid sna pods atá ag rith. Is ansin amháin a bhíonn an paiste éifeachtach, mar ní chabhraíonn comhaid nua ach nuair nach bhfuil seanphróisis PHP ag rith a thuilleadh.
# Rollout le híomhá nua (ainmneacha mar shampla)
kubectl -n shop set image deploy/web php=registry.example.com/shop/web@sha256:<digest>
kubectl -n shop rollout status deploy/web
# Rialú: gach pod atosaithe, digest nua gníomhach?
kubectl -n shop get pods -o wide
kubectl -n shop exec deploy/web -c php -- php -v
Má bhrúdh an íomhá as an nua faoin gclib chéanna, spreagann kubectl rollout restart atosú; ní tharraingíonn pods an íomhá as an nua, áfach, ach amháin má cheanglaíonn an imagePullPolicy é. Is sábháilte athrú go digest nua.
Cosain logaí sula gcuireann tú pods in ionad a chéile. Imíonn a logaí áitiúla leis an seanphod. Coinnigh logaí an fhreastalaí gréasáin agus an fheidhmchláir ón 20.10.2026 i leith, go hidéalach i bhfeiste lárnach logála.
Bearta idirthréimhseacha sa chrios
Mura bhfuil íomhá cheartaithe ar fáil fós do do leagan PHP, molann php.net bearta idirthréimhseacha gan cosaint iomlán. Sa chrios, socraíonn tú teorainneacha cuimhne trí theorainneacha acmhainne na gcoimeádán, atá bunaithe ar cgroups. Tagann sé sin le moladh cuimhne a theorannú trí choimeádáin nó cgroups agus ní trí RLIMIT_AS ná RLIMIT_DATA.
; php.ini nó linn FPM san íomhá, m.sh. cuimsithe trí ConfigMap
session.upload_progress.enabled = 0
post_max_size = 8M
upload_max_filesize = 6M
Le feidhm uaslódála, luann php.net post_max_size = 32M. Ar PHP 8.5 cuirtear fatal_error_backtraces=0 leis. Tar éis athrú ar an gcumraíocht tá rollout nua riachtanach. Ina theannta sin, cuireann NetworkPolicies teorainn le naisc amach na bpods PHP, agus is féidir le hIngress le rialacha cosanta iarrachtaí ionsaithe a dhéanamh níos deacra. Ní leor rialacha bunaithe ar shonraí an iarratais amháin, áfach, de réir Cloudflare.
Seasamh níos fearr go buan
Pleanáil atógálacha uathoibríocha rialta de gach íomhá PHP, seiceáil íomhá sa slabhra tógála agus polasaithe nach gceadaíonn ach íomhánna sínithe nó seiceáilte. Má ritheann coimeádáin PHP le húsáideoir gan cearta root agus le córas comhad cosanta ar scríobh, laghdaítear damáiste ionsaí rathúil. Tá leideanna do choimeádáin aonair faoi PHP a phaisteáil i gcoimeádáin Docker, do FrankenPHP faoi FrankenPHP a chosaint.
I a lán criosanna, ní ritheann feidhmchláir PHP astu féin. Is minic go bhfuil coimeádáin sidecar do logáil nó do mheitricí ann, íomhánna cúnta do mhigrálacha bunachar sonraí agus jabanna nach dtosaíonn ach san oíche. Is féidir PHP a bheith in íomhánna tríú páirtí freisin, mar shampla do wiki, d'ardán faireacháin nó do chóras ticéad, gan go bhfuil sé le feiceáil ón ainm. Seiceáil dá bhrí sin ní hamháin d'fheidhmchláir féin, ach gach íomhá sa chrios. I gcás íomhánna coimhthíocha: fan le leagan nuashonraithe ón monaróir, seiceáil a chuid sonraí faoin leagan PHP atá ann agus cuir teorainn leis an inrochtaineacht go dtí go mbeidh sé ann. Má ritheann a leithéid de chóras go hinmheánach amháin, laghdaíonn sé sin an riosca, ach ní thagann sé in ionad an nuashonraithe.
Conas a chabhraíonn PHP SOS go nithiúil?
- Taifeadaimid gach workload le PHP, a n-íomhánna agus digests agus seiceálaimid an leagan PHP i pods atá ag rith.
- Tríd an seirbhís phaistithe PHP atógaimid íomhánna, cuirimid amach iad agus déanaimid an staid a dhoiciméadú do gach workload.
- Cosnaímid logaí roimh an malartú agus seiceálaimid le haghaidh rianta ionsaithe.
- Le faireachán slándála agus atógálacha uathoibrithe cinntímid go sroicheann an chéad phaiste eile an crios níos tapúla.
Ceisteanna coitianta
An leor an íomhá bhunúsach a nuashonrú sa registry?
Ní leor. Úsáideann pods atá ag rith an íomhá lenar tosaíodh iad i gcónaí. Ní chuireann ach rollout nua leis an íomhá atógtha na pods in ionad a chéile. Seiceáil ina dhiaidh sin an leagan PHP i ngach pod atá ag rith.
Cén fáth íomhánna a thagairt le digest?
Is féidir le clib pointeáil ar staideanna éagsúla íomhá, ag brath ar cathain a tarraingíodh í. Ainmníonn digest staid amháin go beacht. Mar sin tá a fhios agat go cinnte cén cód atá ag rith i gcén pod, agus tá rollouts intuigthe.
Cad faoi CronJobs agus coimeádáin init?
Is féidir PHP a bheith iontu siúd freisin agus baineann siad leis an stoc. Tosaíonn CronJobs pods nua óna dteimpléad le gach rith; nuashonraigh an íomhá sa teimpléad dá bhrí sin. Ritheann coimeádáin init nuair a thosaíonn gach pod.
An gcosnaíonn NetworkPolicy i gcoinne PHP2Shell?
Ní dhúnann sí an leochaileacht, ach is féidir léi an damáiste a theorannú. An té a chuireann srian ar naisc amach ó pods PHP, déanann sé níos deacra cód mailíseach a luchtú agus gluaiseachtaí cliathánacha sa chrios.