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 →

Il-php.ini spjegata: struttura, livelli u prijorità

Fejn PHP issib is-settings tagħha, f'liema ordni japplikaw u min jista' jissorpassahom. Bażi għal kull tisħiħ u għall-miżuri temporanji dwar PHP2Shell.

Stat 5 min. qariGħarfien dwar PHP

Fil-qosor: Il-php.ini hija l-fajl ċentrali tal-konfigurazzjoni ta' PHP. PHP taqrah meta tibda, ma' moduli tas-server darba, ma' CGI u CLI ma' kull sejħa. Minbarra dan hemm fajls addizzjonali minn direttorju tal-iskanjar, settings fil-pool ta' FPM jew f'Apache, .htaccess jew .user.ini u ini_set() fil-kodiċi. Liema livell jista' jibdel valur jiddeċiedi l-modalità tal-bidla tiegħu, pereżempju INI_SYSTEM jew INI_PERDIR. Valuri permezz ta' php_admin_value l-applikazzjoni ma tistax tissorpassahom aktar.

X'inhi l-php.ini?

Il-php.ini hija fajl tat-test b'entrati fuq il-mudell name = wert. Tistabbilixxi kif taġixxi PHP: kemm jista' jinqeda skrip bil-memorja, jekk l-iżbalji jidhrux fil-browser, kif jaħdmu s-sessjonijiet u liema estensjonijiet jitgħabbew. Kummenti jibdew b'punt u virgola.

Skont il-manwal ta' PHP, il-fajl jinqara meta tibda PHP. Ma' moduli tas-server bħal mod_php dan isir darba biss, meta jinbeda s-server tal-web, ma' CGI u CLI ma' kull sejħa. PHP-FPM taqra l-konfigurazzjoni tagħha meta tibda u meta s-servizz jerġa' jitgħabba. Tibdil mingħajr restart jew reload għalhekk normalment ma jaħdimx.

Minn PHP 8.3, skont il-manwal, entrata tista' tirreferi għal varjabbli tal-ambjent b'valur alternattiv:

memory_limit = ${PHP_MEMORY_LIMIT}
max_execution_time = ${PHP_MAX_EXECUTION_TIME:-30}

Fejn tfittex PHP il-php.ini?

Il-manwal jiddeskrivi ordni fissa. L-ewwel jgħodd mogħdija stabbilita espliċitament, pereżempju PHPIniDir f'Apache jew l-għażla -c ma' CGI u CLI. Inkella PHP tibni mogħdija tat-tiftix minn:

  1. il-varjabbli tal-ambjent PHPRC,
  2. taħt Windows, l-entrata tar-registry IniFilePath,
  3. id-direttorju tax-xogħol kurrenti, ħlief għal SAPIs li jitfuh, bħas-CLI,
  4. id-direttorju tal-fajl binarju ta' PHP jew tal-modulu,
  5. il-mogħdija stabbilita waqt il-kompilazzjoni --with-config-file-path.

F'din il-mogħdija tat-tiftix PHP tfittex l-ewwel fajl php-SAPI.ini, pereżempju php-cli.ini, u biss wara php.ini. Imbagħad PHP taqra l-fajls .ini kollha mid-direttorju tal-iskanjar, stabbilit permezz ta' PHP_INI_SCAN_DIR jew waqt il-kompilazzjoni permezz ta' --with-config-file-scan-dir, f'ordni alfabetika. Liema fajls ġew mgħobbija juri php --ini jew il-funzjoni php_ini_scanned_files().

php --ini
php -r 'var_dump(php_ini_loaded_file(), php_ini_scanned_files());'

It-tnejn jagħtu l-istat tal-linja tal-kmand. Għall-websajt jista' japplika fajl ieħor, għax kull SAPI tista' jkollha l-konfigurazzjoni proprja tagħha; aktar dwar dan taħt SAPI spjegata.

Modalitajiet tal-bidla: min jista' jissettja liema valur?

Mhux kull setting jista' jiġi ssettjat kullimkien. Il-manwal jassenja lil kull direttiva modalità tal-bidla:

Modalità Fejn jista' jiġi ssettjat il-valur
INI_USER fl-iskripts permezz ta' ini_set(), fir-registry ta' Windows u f'.user.ini
INI_PERDIR f'php.ini, .htaccess, httpd.conf jew .user.ini
INI_SYSTEM biss f'php.ini jew httpd.conf
INI_ALL kullimkien

Eżempji mill-manwal: memory_limit għandu l-modalità INI_ALL u l-istandard 128M, post_max_size għandu INI_PERDIR u l-istandard 8M, upload_max_filesize għandu INI_PERDIR u l-istandard 2M. expose_php jista' jkun biss fil-php.ini.

Fajls .user.ini jinqraw, skont il-manwal, biss mill-SAPIs CGI u FastCGI, jiġifieri wkoll minn PHP-FPM. PHP tfittixhom mid-direttorju tal-iskrip 'il fuq sad-Document Root u terġa' taqrahom, b'mod predefinit, l-iktar kull 300 sekonda (user_ini.cache_ttl). Taħt mod_php .htaccess jieħu dan ir-rwol.

Liema valur jgħodd fl-aħħar? Il-livelli fil-prijorità

B'mod simplifikat: aktar tard livell japplika, aktar il-valur tiegħu jirbaħ, sakemm il-modalità tal-bidla tippermettih.

  1. php.ini tas-SAPI rispettiva
  2. Fajls addizzjonali mid-direttorju tal-iskanjar, alfabetikament
  3. Konfigurazzjoni tas-server: pool ta' FPM b'php_value jew php_admin_value, VirtualHost ta' Apache
  4. Livell tad-direttorju: .htaccess ma' mod_php, .user.ini ma' FPM u CGI
  5. Waqt it-tħaddim: ini_set() fil-kodiċi tal-applikazzjoni

L-eċċezzjoni hija deċiżiva: valuri permezz ta' php_admin_value jew php_admin_flag ma jistgħux, skont il-manwal, jiġu sorpassati b'ini_set(). B'hekk l-amministraturi jsakkru settings rilevanti għas-sigurtà kontra l-applikazzjoni. Dan huwa deskritt fid-dettall taħt php_admin_value: ssakkru settings kontra s-sorpass.

Il-php.ini wara PHP2Shell: x'inbidel

Il-miżuri temporanji minn php.net dwar PHP2Shell huma kważi kollha settings INI: memory_limit=-1 imsakkar kontra s-sorpass, post_max_size limitat, session.upload_progress.enabled=0 u fuq PHP 8.5 fatal_error_backtraces=0. php.net jenfasizza li session.upload_progress.enabled m'għandux jiġi ssettjat permezz ta' ini_set() jew .user.ini, imma f'php.ini, pool ta' FPM jew konfigurazzjoni tas-server, segwit minn restart tal-workers kollha. Il-lista kompleta tinsab taħt Miżuri immedjati jekk għadkom ma tistgħux tippatchjaw.

Mal-verżjonijiet irranġati 8.5.12, 8.4.27, 8.3.36 u 8.2.35, skont il-manwal, inbidel ukoll memory_limit: issa huwa limitu artab. Is-setting il-ġdid memory_hard_limit_percent jistabbilixxi limitu iebes. Mingħajr valur proprju huwa d-doppju ta' memory_limit, meta dan ikun akbar minn 1G, il-valur flimkien ma' 1G. Jekk jinqabeż, il-proċess jintemm immedjatament b'exit status 137. Kif tagħżlu ż-żewġ limiti b'mod raġonevoli jispjega Kif tissettjaw memory_limit sew.

Suġġeriment

Skont il-manwal japplika: jekk verżjoni ta' PHP ma tagħrafx memory_hard_limit_percent, hija affettwata minn CVE-2026-109618 u CVE-2026-109619. Fid-distribuzzjonijiet b'backports, il-changelog tal-pakkett jipprova wkoll l-istat.

Kif jgħin PHP SOS konkretament?

  • Niddeterminaw il-valuri effettivi: Naqraw għal kull SAPI liema fajls jitgħabbew u liema valur jgħodd fl-aħħar.
  • Ninnaddfu l-livelli: Nneħħu entrati kontradittorji minn panels, pools, .htaccess u .user.ini.
  • Nissakkru valuri: Fil-qafas tal-tisħiħ tas-server nistabbilixxu valuri rilevanti għas-sigurtà permezz ta' php_admin_value.
  • Niddokumentaw: Niddokumentaw is-settings u r-restart, biex l-istat ikun jista' jiġi pprovat aktar tard.

Mistoqsijiet frekwenti

Fejn tinsab il-php.ini?

Dan jiddependi mis-sistema operattiva, mill-pakkett u mis-SAPI. Taħt Debian u Ubuntu hemm folders proprji għal kull verżjoni u SAPI, pereżempju /etc/php/8.3/fpm/php.ini u /etc/php/8.3/cli/php.ini. Fuq il-linja tal-kmand php --ini juri l-fajls mgħobbija, għall-websajt jgħin php_ini_loaded_file() f'fajl ta' verifika għal żmien qasir.

F'liema ordni jinqraw il-fajls fil-folder conf.d?

Skont il-manwal ta' PHP, PHP taqra l-fajls kollha bl-estensjoni .ini fid-direttorju tal-iskanjar f'ordni alfabetika. Fajls aktar tard jissorpassaw il-valuri ta' dawk ta' qabel. Għalhekk ħafna fajls għandhom numri bħal 20- jew 99- f'ismijiethom.

Għaliex it-tibdil tiegħi fil-php.ini ma jaħdimx?

Raġunijiet komuni: inbidel il-fajl ta' SAPI oħra, is-servizz ma reġax inbeda, valur fil-pool ta' FPM, fil-konfigurazzjoni ta' Apache jew f'.user.ini jissorpassah, jew panel tal-hosting jikteb mill-ġdid il-fajl mal-ewwel salvataġġ li jmiss.

X'inhu memory_hard_limit_percent?

Setting ġdid li, skont il-manwal ta' PHP, ġie introdott mal-verżjonijiet tas-sigurtà tal-21/10/2026. Jistabbilixxi limitu iebes tal-memorja bħala perċentwali ta' memory_limit. Il-manwal jindika li verżjoni ta' PHP li ma tafx dan is-setting hija affettwata mill-vulnerabbiltajiet ta' PHP2Shell.

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