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:
- Erġa' ibda s-servizzi kollha ta' PHP, pereżempju
systemctl restart php8.3-fpmjew Apache ma' mod_php. Mingħajr restart il-valur il-qadim ikompli jaħdem. - Poġġi fl-webroot fajl qasir ta' verifika b'isem każwali, li juri biss il-valur attwali.
- Iftaħ il-fajl darba permezz tad-dominju veru u innota r-riżultat.
- Ħ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.
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.