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 →

Itfi session.upload_progress: sew u b'mod permanenti

Il-ħarsien kontra CVE-2026-115560 u waħda mill-miżuri tranżitorji ta' PHP2Shell jiġi ssettjat malajr. Biex iżomm, irid jinsab fil-post it-tajjeb, ikun imblukkat u jerġa' jiġi vverifikat wara kull aġġornament.

Stat 6 min. qariTisħiħ u konfigurazzjoni

Fil-qosor: Issettja session.upload_progress.enabled=0 fil-php.ini, fil-pool PHP-FPM jew fil-konfigurazzjoni tas-server ta' Apache, qatt b'ini_set() jew .user.ini, u wara erġa' ibda l-workers kollha ta' PHP. Il-miżura ssir permanenti biss meta l-valur ikun imblukkat kontra t-tqabbid mill-ġdid, japplika f'kull modalità tat-tħaddim u f'kull verżjoni ta' PHP installata, u jiġi vverifikat wara l-aġġornamenti.

Issettjar żgħir b'effett doppju

Rari issettjar wieħed ta' PHP ikseb daqshekk attenzjoni. Meta php.net ippubblika fil-21 ta' Ottubru 2026 il-patches kontra PHP2Shell, session.upload_progress.enabled=0 kien fuq il-lista tal-miżuri tranżitorji. Jumejn wara segwa l-avviż dwar CVE-2026-115560, u l-ħarsien rakkomandat kien l-istess issettjar.

Ħafna amministraturi issettjawh malajr f'dawn il-jiem. Jekk jaħdimx kullimkien hija mistoqsija oħra. Lakuni tipiċi jingħaddu malajr: il-valur jinsab biss fil-konfigurazzjoni tas-CLI, verżjoni oħra ta' PHP ġiet minsija, jew panel tal-hosting kiteb fuq il-fajl fil-ħażna li jmiss tal-konfigurazzjoni. Dan l-artikolu juri kif timplimenta l-miżura b'mod li tapplika wkoll fi tliet xhur.

Importanti minn qabel: li titfi ma tissostitwixxix l-aġġornament ta' PHP. Skont rapporti tekniċi, session.upload_progress.enabled=0 waħdu ma jagħlaqx iż-żewġ vulnerabbiltajiet ta' PHP2Shell. X'jolqot eżattament CVE-2026-115560 jispjega l-paġna CVE-2026-115560: avviż dwar session upload progress.

X'tagħmel il-funzjoni u min jeħtiġha

Session upload progress jikteb fis-session kontinwament il-progress waqt upload ta' fajl, biex applikazzjoni tkun tista' turi bar tal-progress. F'PHP il-funzjoni hija mixgħula b'mod standard. Il-manwal ta' PHP innifsu jindika li d-dettalji tal-fajl u tal-oqsma mibgħuta mill-mittent jispiċċaw mhux ivverifikati fil-ħażna tas-session, u jirrakkomanda li titfa l-funzjoni jekk l-applikazzjoni ma tużahiex.

Jekk l-applikazzjoni tiegħek tużahiex, tistgħu issibu b'tiftix li jaqra biss fil-kodiċi:

# Ifittex użi tal-funzjoni tal-progress fil-kodiċi tal-applikazzjoni
grep -rn --include="*.php" -e "upload_progress" -e "PHP_SESSION_UPLOAD_PROGRESS" /var/www/

Jekk it-tiftix ma jsib xejn, tista' titfi l-funzjoni mingħajr konsegwenzi ta' min jinduna. Jekk hemm hits, l-applikazzjoni titlef biss l-indikazzjoni tal-progress, mhux l-upload. Formoli moderni ġeneralment jgħoddu l-progress fil-browser xorta waħda.

Issettja session.upload_progress.enabled fil-post it-tajjeb

L-issettjar għandu, skont il-manwal ta' PHP, il-modalità INI_PERDIR. Dan ifisser: jista' jiġi ssettjat fil-php.ini, fil-konfigurazzjoni tas-server, f'.htaccess (biss mod_php) u f'.user.ini (biss FPM u CGI), imma mhux waqt it-tħaddim. php.net jeskludi espliċitament .user.ini bħala post għall-miżura. It-tabella li ġejja turi l-postijiet sensibbli għal kull modalità tat-tħaddim.

Modalità tat-tħaddim Post rakkomandat Jibblokka kontra sostituzzjoni? Imbagħad erġa' ibda
PHP-FPM fajl tal-pool b'php_admin_flag iva kull servizz FPM
PHP-FPM php.ini tas-SAPI FPM le, .user.ini tista' tegħlebha kull servizz FPM
Apache b'mod_php VirtualHost jew konfigurazzjoni tas-server b'php_admin_flag iva Apache kompletament
php-cgi, LiteSpeed, FrankenPHP php.ini tar-runtime rispettiv ivverifika skont l-istruttura il-proċessi kollha tar-runtime
Image Docker fajl proprju f'/usr/local/etc/php/conf.d/ mal-bini iva, jekk ma jkun permess l-ebda override oħloq il-container mill-ġdid

Iż-żewġ varjanti robusti jidhru hekk:

; PHP-FPM, pereżempju /etc/php/8.3/fpm/pool.d/seite1.conf
php_admin_flag[session.upload_progress.enabled] = off
# Apache b'mod_php, fil-VirtualHost jew fuq is-server kollu
<IfModule php_module>
    php_admin_flag session.upload_progress.enabled off
</IfModule>

Barra minn hekk jixraq id-daħla fil-php.ini ta' kull SAPI tal-web bħala valur bażiku. Allura l-issettjar japplika wkoll għal pools ġodda li xi ħadd joħloq aktar tard. Għaliex php_admin_flag jagħmel id-differenza jiddeskrivih l-artikolu php_admin_value: ibblokka l-issettjar kontra sostituzzjoni.

Ivverifika l-effettività fil-kuntest tal-web

Il-linja tal-kmand ħafna drabi taqra php.ini differenti minn dik tas-server tal-web. php -i għalhekk jipprova ftit. Anke php-fpm8.3 -i juri biss il-valuri tal-php.ini, mhux id-daħliet mill-pools. Affidabbli hija biss talba li tgħaddi fil-fatt mill-pool.

Hekk tipproċedi:

  1. Erġa' ibda s-servizzi kollha ta' PHP, pereżempju systemctl restart php8.3-fpm jew Apache ma' mod_php. Mingħajr restart il-valur il-qadim ikompli jaħdem.
  2. Poġġi fl-webroot fajl qasir ta' verifika b'isem każwali, li juri biss il-valur attwali.
  3. Iftaħ il-fajl darba permezz tad-dominju veru u innota r-riżultat.
  4. Ħassar il-fajl minnufih u erġa' agħmel il-pass għal kull websajt u kull pool.
<?php
// Fajl ta' verifika: poġġih biss għal ftit, imbagħad ħassru minnufih
header('Content-Type: text/plain');
echo 'session.upload_progress.enabled = ', var_export(ini_get('session.upload_progress.enabled'), true), "\n";
echo 'PHP ', PHP_VERSION, ' / SAPI ', PHP_SAPI, "\n";

Jiġi mistenni valur vojt jew '0'. Jekk hemm '1', l-issettjar tiegħek ma jaħdimx f'dan il-pool. Wara aġġornament ta' PHP ivverifika wkoll jekk il-workers kollha ġewx mibdija mill-ġdid, kif deskritt f'Erġa' ibda PHP-FPM u l-workers kollha.

Importanti

Qatt tħalli fajls ta' verifika. Jiżvelaw verżjonijiet u konfigurazzjoni u huma mira favorita ta' skans awtomatiċi.

Biex l-issettjar jibqa' permanenti

Il-biċċa l-kbira tar-rilaps ma jiġux mill-attakkanti, imma mill-operat. Pool ġdid jiġi kkupjat minn mudell qadim, aġġornament ta' pakkett joħloq php.ini ġdida, jew xi ħadd jibdel il-verżjoni ta' PHP fil-panel tal-hosting. Kontra rilaps bħal dawn jgħinu drawwiet fissi.

  • Kopri l-verżjonijiet kollha: fuq ħafna servers jaħdmu diversi verżjonijiet ta' PHP b'mod parallel. Kull waħda għandha folders ta' konfigurazzjoni proprji u teħtieġ id-daħla.
  • Adatta l-mudelli: mudelli ta' pools, rwoli Ansible, Dockerfiles u mudelli tal-panel jinkludu l-valur, biex websajts ġodda jirtuh awtomatikament.
  • Uża l-issettjar tal-panel: f'panels tal-hosting il-valur jappartjeni fid-direttivi addizzjonali previsti mill-panel, inkella l-bidla li jmiss tikteb fuq ix-xogħol bl-idejn.
  • Ivverifika wara l-aġġornamenti: il-verifika mit-taqsima ta' qabel tappartjeni fil-lista ta' kontroll ta' kull aġġornament ta' PHP.
  • Iddokumenta: żomm id-data, is-server, il-pools u r-riżultat. Dan jgħin aktar tard quddiem id-direzzjoni, l-assigurazzjoni jew l-awdituri.

Min ma juża .user.ini xejn jista' jitfi għal kollox il-qari ta' fajls bħal dawn b'user_ini.filename = fil-php.ini. Imma dan jaffettwa l-issettjar kollu li l-applikazzjonijiet iżommu hemmhekk. Ittestja dan il-pass għalhekk qabel, speċjalment b'CMS li jiktbu fajls .user.ini proprji.

Il-miżuri tranżitorji l-oħra ta' php.net, bħal-limiti għal post_max_size u l-limitu tal-memorja permezz ta' cgroup, jinsabu miġbura taħt Miżuri immedjati meta ma tistax tippatchja għadek. Kif PHP jorganizza fil-prinċipju l-livelli tal-konfigurazzjoni jispjegah Il-php.ini spjegat.

Kif tgħin PHP SOS b'mod konkret?

  • Ħu inventarju: niddeterminaw il-verżjonijiet kollha ta' PHP, il-modalitajiet tat-tħaddim u l-pools fuq is-servers tiegħek u naqraw il-valuri effettivi fil-kuntest tal-web.
  • Issettja nadif: nidħlu l-issettjar imblukkat fil-pools u fil-konfigurazzjoni tas-server u nerġgħu nibdew il-workers kollha b'mod ikkontrollat.
  • Ittestja l-funzjoni: nivverifikaw formoli tal-upload u l-ġestjoni tal-midja wara l-bidla.
  • Evita r-rilaps: nadattaw mudelli, deployments u issettjar tal-panel u niddokumentaw l-istat bħala parti mit-Tisħiħ tas-server.

Mistoqsijiet frekwenti

Għaliex session.upload_progress.enabled=0 ma jaħdimx permezz ta' ini_set()?

Skont il-manwal ta' PHP, l-issettjar jappartjeni għall-modalità INI_PERDIR. Għalhekk ma jistax jinbidel waqt it-tħaddim b'ini_set(). php.net isemmi bħala postijiet korretti l-php.ini, il-pool FPM jew il-konfigurazzjoni tas-server u jeskludi espliċitament .user.ini.

L-uploads ta' fajls għadhom jaħdmu wara t-tfixkil?

Iva. Jitwaqqaf biss ir-rapport tal-progress li PHP jikteb fis-session waqt upload. L-upload innifsu jkompli. Huma affettwati biss applikazzjonijiet li jibnu l-bar tal-progress tagħhom eżattament permezz ta' din il-funzjoni ta' PHP.

Applikazzjoni tista' terġa' tixgħel il-funzjoni?

Permezz ta' fajl .htaccess ma' mod_php jew .user.ini ma' PHP-FPM dan bażikament huwa possibbli, sakemm il-valur ma jkunx imblukkat. B'php_admin_flag fil-pool jew fil-konfigurazzjoni ta' Apache tipprevjeni dan.

Għandi nerġa' nreġġa' lura l-valur wara l-aġġornament li jmiss ta' PHP?

Le, dan mhuwiex meħtieġ. Il-funzjoni mhijiex meħtieġa mill-biċċa l-kbira tal-applikazzjonijiet, u l-manwal ta' PHP innifsu jirrakkomanda li titfa f'każijiet bħal dawn. Ivverifika biss wara kull aġġornament jekk il-valur għadux japplika.

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