Fil-qosor: Għas-sigurtà tal-php.ini jgħoddu l-aktar erba' oqsma: l-ebda messaġġ ta' żball 'il barra, cookies tas-session sikuri, uploads limitati u valuri msakkra li l-applikazzjonijiet ma jistgħux jegħlbu. Wara PHP2Shell jiżdiedu l-miżuri temporanji ta' php.net, l-aktar session.upload_progress.enabled=0. Konfigurazzjoni sikura, madankollu, qatt ma tissostitwixxi l-aġġornament.
Għaliex il-php.ini terġa' tinsab fil-mira wara PHP2Shell
Il-php.ini hija l-fajl ċentrali ta' konfigurazzjoni ta' PHP. Fuq ħafna servers ġiet stabbilita darba u wara kważi ma ntmessitx. B'PHP2Shell dan inbidel: għaż-żewġ vulnerabbiltajiet CVE-2026-109618 u CVE-2026-109619 php.net isemmi miżuri temporanji li jibdew eżattament hawn.
Il-vulnerabbiltajiet nfushom jinsabu fl-interpretatur ta' PHP. Huma rranġati f'PHP 8.5.12, 8.4.27, 8.3.36 u 8.2.35, ippubblikati fil-21/10/2026. Konfigurazzjoni tajba, madankollu, tgħin b'żewġ modi: tista' tagħmel l-isfruttament aktar diffiċli, u tillimita l-ħsara jekk xi ħaġa tgħaddi.
Ħafna operaturi, barra minn hekk, ma jafux eżattament liema issettjar japplika fuq is-server tagħhom. Dan huwa l-ewwel pass.
Liema php.ini tapplika fuq is-server tagħkom?
PHP jista' jaqra fajls differenti ta' konfigurazzjoni skont il-modalità tat-tħaddim. Il-linja tal-kmand, PHP-FPM u Apache b'mod_php għandhom taħt Debian u Ubuntu, pereżempju, kull wieħed folders proprji taħt /etc/php/<version>/. Min jibdel biss il-fajl tas-CLI ma jbiddel xejn fil-websajt.
# Fajls ta' konfigurazzjoni tal-linja tal-kmand
php --ini
# Konfigurazzjoni ta' PHP-FPM (adattaw in-numru tal-verżjoni)
php-fpm8.3 -i | grep -E "Loaded Configuration|Scan this dir"
# Ivverifikaw valuri individwali ta' PHP-FPM
php-fpm8.3 -i | grep -E "^(expose_php|display_errors|session.upload_progress.enabled) "
Barra minn hekk, valuri jistgħu jkunu fil-pool FPM, fil-konfigurazzjoni ta' Apache, f'.htaccess (biss mod_php) jew f'.user.ini (FPM u CGI). Liema verżjoni verament taħdem fuq is-server u jekk fiha backport jiċċarah il-kontribut Kif tivverifikaw sewwa l-verżjoni ta' PHP u l-istat tal-patches.
Issettjar bażiku għal aktar sigurtà tal-php.ini
Il-valuri li ġejjin huma sensati għall-biċċa l-kbira tas-servers tal-produzzjoni. Qabel ma tużawhom, ivverifikaw f'ambjent tat-test jekk l-applikazzjoni tagħkom taħdimx bil-valuri kollha.
; L-ebda indikazzjoni tal-verżjoni fl-header HTTP
expose_php = Off
; Irreġistraw l-iżbalji, imma qatt ma turuhom fil-browser
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /var/log/php/error.log
; L-ebda inklużjoni ta' fajls minn indirizzi remoti
allow_url_include = Off
; Ħallu allow_url_fopen attiv biss jekk l-applikazzjoni teħtieġu
allow_url_fopen = Off
; Sessions: stretti, biss permezz ta' HTTPS, ma jinqrawx b'JavaScript
session.use_strict_mode = 1
session.use_only_cookies = 1
session.cookie_secure = 1
session.cookie_httponly = 1
session.cookie_samesite = Lax
; Illimitaw il-ħin tat-tħaddim u l-inputs
max_execution_time = 30
max_input_time = 60
max_input_vars = 1000
allow_url_fopen ċerti applikazzjonijiet jeħtiġuh għal aġġornamenti jew interfaces. Itfuh biss jekk ivverifikajtu dan qabel. Funzjonijiet li jesegwixxu kmandi tas-sistema jistgħu jiġu msakkra wkoll; kif dan jirnexxi mingħajr effetti sekondarji tispjegah il-gwida Kif tużaw disable_functions sewwa.
Miżuri temporanji ta' php.net dwar PHP2Shell
Jekk ma tistgħux tapplikaw il-patch minnufih, php.net isemmi diversi issettjar li jnaqqsu r-riskju. Huma espliċitament mhumiex protezzjoni sħiħa, imma pont sal-aġġornament.
; Itfi l-upload progress tas-session (anke minħabba CVE-2026-115560)
session.upload_progress.enabled = 0
; Illimita d-daqs tat-talba: 8M mingħajr uploads, 32M b'uploads
post_max_size = 8M
upload_max_filesize = 6M
; Biss PHP 8.5: l-ebda backtraces f'żbalji gravi
fatal_error_backtraces = 0
Barra minn hekk php.net jirrakkomanda li memory_limit=-1 jiġi ffissat b'mod li l-applikazzjonijiet ma jistgħux jegħlbu l-valur, u li l-limitu tal-memorja jitfassal minflok permezz ta' container jew cgroup, mhux permezz ta' RLIMIT_AS jew RLIMIT_DATA. Din il-miżura tappartjeni fil-pool FPM jew fil-konfigurazzjoni tas-server u għandha tiġi kkombinata ma' limitu tal-cgroup li jaħdem. Il-ħarsa ġenerali sħiħa issibuha taħt Miżuri immedjati jekk għadkom ma tistgħux tapplikaw il-patch.
session.upload_progress.enabled=0 taħdem biss mill-php.ini, mill-pool FPM jew mill-konfigurazzjoni tas-server. Jekk jiġi ffissat permezz ta' ini_set() jew .user.ini, il-miżura ma tapplikax. Wara dan erġgħu ibdew il-workers kollha.
Sakkru l-valuri biex ma jiġux megħluba
Ħafna applikazzjonijiet jiffissaw valuri proprji, pereżempju għall-memorja jew għall-uploads. B'php_admin_value u php_admin_flag tiffissaw l-issettjar b'mod li la ini_set() u lanqas .user.ini ma jistgħu jibdluh. Fil-pool FPM dan jidher hekk:
; /etc/php/8.3/fpm/pool.d/meine-seite.conf (silta)
php_admin_flag[display_errors] = off
php_admin_flag[session.upload_progress.enabled] = off
php_admin_value[memory_limit] = -1
php_admin_value[post_max_size] = 8M
php_admin_value[upload_max_filesize] = 6M
php_admin_value[error_log] = /var/log/php/meine-seite.error.log
Taħt Apache b'mod_php tgħodd l-istess loġika b'php_admin_value u php_admin_flag fil-konfigurazzjoni tal-VirtualHost. Wara dan erġgħu tgħabbu s-servizz u ivverifikaw il-valur attiv:
sudo systemctl reload php8.3-fpm
# Ħin tal-bidu tal-proċessi: Huwa wara l-bidla?
ps -eo pid,lstart,cmd | grep "[p]hp-fpm"
Reload jerġa' jibda l-workers ta' PHP-FPM. Wara aġġornament ta' PHP, min-naħa l-oħra, huwa meħtieġ restart sħiħ tal-proċessi kollha ta' PHP, biex ebda proċess qadim ma jibqa' jaħdem fil-memorja. Meta jkun hemm diversi websajts fuq server wieħed, jixraq ukoll pool separat għal kull websajt; aktar dwar dan fil-gwida open_basedir u iżolament għal kull websajt.
Żbalji komuni u lista qasira ta' verifika
Il-biċċa l-kbira tal-problemi bil-php.ini ma jinqalgħux minn valuri żbaljati, imma minn valuri fil-post ħażin. Tipiku huwa l-fajl tas-CLI mibdul, filwaqt li l-websajt taħdem permezz ta' PHP-FPM. Ukoll komuni huwa li wara bidla ma jsirx restart, jew li panel tal-hosting jegħleb l-issettjar proprju fil-ħażna li jmiss.
It-tieni klassiku huma messaġġi ta' żball viżibbli fuq il-websajt live. Jiżvelaw mogħdijiet, ismijiet tad-database jew verżjonijiet u jgħinu lill-attakkanti jorjentaw ruħhom. Propju wara trasferiment jew installazzjoni mill-ġdid, display_errors ħafna drabi jerġa' jkun On.
Dawn il-punti għandkom tivverifikawhom wara kull bidla u wara kull aġġornament ta' PHP:
- Liema fajl ta' konfigurazzjoni jaqra l-modalità tat-tħaddim tal-web, u fih il-valuri tagħkom?
display_errorsuexpose_phphuma mitfija, u l-log tal-iżbalji jista' jinkiteb?session.upload_progress.enabledhuwa0, iffissat permezz tal-php.ini jew tal-pool?- Id-daqsijiet tal-uploads u tat-talbiet huma llimitati b'mod xieraq għall-applikazzjoni?
- Il-proċessi kollha ta' PHP għandhom ħin tal-bidu wara l-aħħar bidla?
Żommu r-riżultat bid-data. Hekk aktar tard jista' jiġi ppruvat meta liema issettjar kien japplika.
Kif tgħin PHP SOS b'mod konkret?
- Niddeterminaw liema konfigurazzjoni hija verament attiva f'liema modalità tat-tħaddim.
- Napplikaw konfigurazzjoni bażika miftiehma u l-miżuri temporanji ta' PHP2Shell, ittestjati mal-applikazzjoni tagħkom.
- Insakkru l-valuri rilevanti għas-sigurtà biex ma jiġux megħluba u nerġgħu nibdew il-workers kollha b'mod ikkontrollat.
- Niddokumentaw l-issettjar u r-riżultat tal-verifika, biex bidliet aktar tard jibqgħu traċċabbli.
Kif tidher protezzjoni dejjiema jiddeskrivih is-servizz Tisħiħ tas-server għal servers tal-web bi PHP.
Mistoqsijiet frekwenti
Liema php.ini juża verament is-server tal-web tiegħi?
Ħafna drabi mhix l-istess bħal dik tal-linja tal-kmand. PHP-FPM, Apache b'mod_php u CLI ġeneralment għandhom folders ta' konfigurazzjoni proprji. Ivverifikaw għalhekk il-fajl attiv skont il-modalità tat-tħaddim, pereżempju b'php-fpm -i jew b'fajl ta' verifika mpoġġi temporanjament.
php.ini sikura tissostitwixxi l-aġġornament ta' PHP?
Le. L-issettjar inaqqas is-superfiċje ta' attakk u jagħmel l-isfruttament aktar diffiċli, imma ma jagħlaqx vulnerabbiltà fl-interpretatur ta' PHP. Anke l-miżuri temporanji ta' php.net dwar PHP2Shell mhumiex espliċitament protezzjoni sħiħa.
X'inhi d-differenza bejn php_value u php_admin_value?
Valuri ffissati b'php_value l-applikazzjoni tista' terġa' tbiddilhom waqt it-tħaddim. Valuri permezz ta' php_admin_value fil-pool FPM jew fil-konfigurazzjoni ta' Apache, min-naħa l-oħra, huma msakkra għall-applikazzjoni, anke għal ini_set() u .user.ini.
Irrid nerġa' nibda wara bidla fil-php.ini?
Iva. PHP-FPM u Apache b'mod_php jaqraw il-konfigurazzjoni biss meta jibdew. Il-valuri l-ġodda jgħoddu biss wara restart jew reload tas-servizzi kollha affettwati.