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 →

Tħaddim ta' PHP f'containers

PHP f'container jeħtieġ il-varjant xieraq tal-immaġni, konfigurazzjoni tal-produzzjoni, limiti raġonevoli tal-memorja u proċess li jibni l-immaġini mill-ġdid ma' kull rilaxx tas-sigurtà.

Stat 5 min. qariGħarfien dwar PHP

Fil-qosor: Biex tħaddmu PHP f'containers, agħżlu l-varjant xieraq tal-immaġni uffiċjali (fpm, apache jew cli), attivaw il-php.ini tal-produzzjoni, installaw biss l-estensjonijiet meħtieġa u ssettjaw limiti tal-memorja u tal-proċessi li jaqblu ma' xulxin. Il-containers huma immutabbli: aġġornament tas-sigurtà ta' PHP bħal dak għal PHP2Shell jaħdem biss meta l-immaġni tinbena mill-ġdid u kull container jerġa' jinbeda. Dan il-bini mill-ġdid għalhekk jappartjeni bħala proċess fiss f'kull tħaddim ta' containers.

Għaliex PHP f'containers?

Il-containers jippakkjaw PHP, l-estensjonijiet u l-konfigurazzjoni f'immaġni li taħdem l-istess fuq kull server. Għall-kumpaniji dan ifisser: inqas sorpriżi bejn it-test u l-produzzjoni, irkupru aktar mgħaġġel u stati ċari tal-verżjonijiet. Għas-sigurtà, madankollu, ifisser ukoll obbligu ġdid: ħadd ma japplika aġġornamenti awtomatikament f'container.

Din il-paġna tittratta t-tħaddim kurrenti. Kif tapplikaw patches konkreti kontra PHP2Shell fuq containers eżistenti tinsab taħt Applika patches għal PHP f'containers Docker.

L-għażla tal-varjant korrett tal-immaġni

Varjant Kontenut Użu tipiku
php:<version>-fpm PHP-FPM, jeħtieġ server tal-web quddiemu Produzzjoni b'Nginx, Caddy jew Ingress
php:<version>-apache Apache b'mod_php, b'mod awtomatiku mpm_prefork strutturi sempliċi, applikazzjonijiet eqdem
php:<version>-cli Linja tal-kmand, fiha bħala l-unika varjant ukoll php-cgi Cronjobs, queue workers, passi ta' build
…-alpine fuq Alpine Linux b'musl immaġini żgħar, ma' xi estensjonijiet jinħtieġu aġġustamenti
…-bookworm, …-trixie fuq il-verżjoni msemmija ta' Debian bażi fissa għal builds riproduċibbli

Għal proġetti ġodda ġeneralment huwa rakkomandat il-varjant fpm b'container separat tas-server tal-web. B'mod_php it-tim ta' PHP, b'rabta ma' PHP2Shell, jaraw l-ogħla riskju; min juża l-immaġni apache iħaddem eżatt din il-modalità tat-tħaddim.

Bini ta' immaġni tal-produzzjoni

Eżempju żgħir għal applikazzjoni b'aċċess għal MySQL:

FROM php:8.4-fpm-alpine

# Attiva l-konfigurazzjoni tal-produzzjoni (skont id-dokumentazzjoni tal-immaġni, rakkomandat bil-qawwa)
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"

# Biss l-estensjonijiet meħtieġa
RUN docker-php-ext-install -j"$(nproc)" pdo_mysql

# Issettjar proprju
COPY zz-sicherheit.ini "$PHP_INI_DIR/conf.d/"

# Il-kodiċi jappartjeni lil root; il-workers ta' FPM jaħdmu bħala www-data u jistgħu jaqrawh biss
COPY . /var/www/html

L-iskripts ta' għajnuna tal-immaġni jieħdu ħsieb il-bini tal-estensjonijiet: docker-php-ext-configure għall-għażliet, docker-php-ext-install għall-bini, docker-php-ext-enable biex jattiva, pereżempju wara pecl install. Jekk il-kodiċi sors jinfetaħ b'docker-php-source, skont id-dokumentazzjoni għandu jitħassar mill-ġdid fl-istess saff. Il-fajl zz-sicherheit.ini jista' jidher hekk:

expose_php = Off
display_errors = Off
log_errors = On
session.use_strict_mode = 1
session.cookie_httponly = 1

Żewġ prinċipji oħra jagħmlu l-immaġini aktar robusti. L-ewwel, l-immaġni kkonsenjata fiha biss dak li hemm bżonn waqt it-tħaddim; kompilaturi, caches tal-pakketti u fajls tat-test jappartjenu fi stadju separat ta' build. It-tieni, l-utent li taħtu jaħdem PHP għandu jikteb biss fejn hemm bżonn, pereżempju f'direttorji ta' upload jew cache fuq volumes imwaħħla. Ħafna timijiet iħaddmu l-container ukoll b'sistema tal-fajls protetta mill-kitba. Fajl PHP injettat mbagħad ikollu ħafna aktar diffikultà biex jibqa' b'mod permanenti, u kull restart jerġa' jwassal l-istat nadif tal-immaġni. Dan ma jissostitwixxix investigazzjoni wara inċident, imma jnaqqas b'mod notevoli s-superfiċje ta' attakk.

Proċessi, memorja u logs fil-container

Tliet viti jiddeterminaw jekk container ta' PHP jaħdimx b'mod stabbli.

  1. Għadd ta' workers: pm.max_children fil-pool ta' FPM jistabbilixxi kemm talbiet jiġu ttrattati fl-istess ħin. Kull worker jista' jokkupa sa memory_limit.
  2. Limitu tal-memorja tal-container: Jillimita l-proċessi kollha flimkien. Bħala regola mhux eżatta japplika: għadd ta' workers darbiet il-memorja għal kull worker flimkien ma' riżerva jrid jidħol taħt il-limitu, inkella s-sistema ttemm proċessi.
  3. Logs: Il-containers jiktbu l-logs fuq l-output standard. F'PHP-FPM catch_workers_output = yes jibgħat l-outputs tal-workers lejn il-log ewlieni; mingħajr l-issettjar, skont il-manwal, jispiċċaw fix-xejn.

Utli barra minn hekk huwa request_terminate_timeout, li jtemm talbiet individwali wara perjodu ta' żmien jekk max_execution_time ma jaħdimx. Kif tħaddmu containers f'cluster tiddeskrivih Applika patches għal PHP f'Kubernetes.

Containers u sigurtà: dak li wera PHP2Shell

F'PHP2Shell il-containers għandhom rwol doppju. Min-naħa waħda huma għajnuna: php.net jirrakkomanda bħala miżura temporanja għal CVE-2026-109618 li memory_limit=-1 jiġi kkombinat ma' limitu tal-memorja permezz ta' container jew cgroup, idealment b'mod li jintemm biss il-worker affettwat. RLIMIT_AS u RLIMIT_DATA huma, skont php.net, mhux adattati għal dan. Din il-miżura mhix protezzjoni sħiħa u ma tieħux post l-aġġornament.

Min-naħa l-oħra l-containers huma nassa jekk l-immaġini ma jinbnewx mill-ġdid. Immaġni b'PHP 8.4.26 tibqa' vulnerabbli, kemm-il darba jerġa' jibda l-container. Biss bini mill-ġdid għal 8.4.27 jew aktar ġdid u l-bdil tal-containers kollha li jaħdmu jagħlqu l-vulnerabbiltà. L-istat jista' jiġi kkontrollat direttament fil-container li jaħdem:

docker exec <container> php -v
docker exec <container> php-fpm -v
docker exec <container> php -r 'var_dump(ini_get("memory_hard_limit_percent"));'

Jekk l-aħħar kmand jirritorna bool(false), PHP ma jafx id-direttiva introdotta mal-verżjonijiet bil-korrezzjoni; skont il-manwal il-verżjoni mbagħad hija affettwata. B'mod permanenti jgħin biss bini awtomatiku mill-ġdid, kif deskritt taħt CI/CD: ibni mill-ġdid awtomatikament l-immaġini ta' PHP.

Suġġeriment

Stabbilixxu fid-Dockerfile il-verżjoni eżatta ta' PHP fit-tag u żiduha apposta. B'hekk fil-kodiċi jista' jiġi ntraċċat meta ġiet imqassma liema verżjoni.

Kif jgħin PHP SOS konkretament?

Fit-tishiħ tas-server għal servers tal-web ta' PHP nieħdu ħsieb ukoll il-containers:

  • Niċċekkjaw l-immaġini: Immaġni bażi, verżjoni ta' PHP, estensjonijiet u konfigurazzjoni ta' kull immaġni.
  • Insaħħu l-konfigurazzjoni: Ini tal-produzzjoni, lista irqiqa ta' estensjonijiet, limiti adattati ta' workers u memorja.
  • Nwaqqfu l-bini mill-ġdid: Proċess li jibni u jrilaxxa mill-ġdid l-immaġini ma' rilaxxi ġodda ta' PHP.
  • Nikkontrollaw it-tħaddim: Nuru li f'kull container li jaħdem taħdem il-verżjoni korretta.

Mistoqsijiet frekwenti

Liema varjant tal-immaġni ta' PHP huwa t-tajjeb?

Għal Nginx jew proxy ieħor il-varjant fpm, għal struttura sempliċi b'Apache il-varjant apache, għal skripts u cronjobs il-varjant cli. Il-varjanti Alpine huma iżgħar, imma jiddependu minn musl minflok glibc, li ma' xi estensjonijiet jinnota.

PHP f'container jiġi aġġornat awtomatikament?

Le. Container li jaħdem ma jinbidilx. Trid terġa' tibni l-immaġni bil-verżjoni l-ġdida ta' PHP u terġa' tibda l-containers. Biss imbagħad taħdem il-verżjoni korretta.

Kif iġibu ruħhom memory_limit u l-limitu tal-container?

memory_limit jillimita kull talba individwali ta' PHP, il-limitu tal-container il-container kollu. It-tnejn iridu jaqblu: l-għadd ta' workers darbiet il-memorja għal kull worker għandu jkun taħt il-limitu tal-container.

Għandi bżonn php.ini f'containers?

Iva. L-immaġini uffiċjali jiġu b'php.ini-development u php.ini-production bħala mudelli. Għall-produzzjoni d-dokumentazzjoni tal-immaġni tirrakkomanda espliċitament il-mudell tal-produzzjoni; l-issettjar proprju jidħol f'conf.d.

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