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 →

expose_php u Server-header: aħbi l-indikazzjonijiet tal-verżjoni

PHP, Nginx u Apache isemmu n-numru tal-verżjoni b'mod standard f'kull tweġiba. Dan ma jipproteġix minn attakki, imma jagħti lill-iskanners lista komda. Hekk titfih u xorta żżomm il-ħarsa ġenerali.

Stat 6 min. qariTisħiħ u konfigurazzjoni

Fil-qosor: B'expose_php = Off fil-php.ini jisparixxi l-header X-Powered-By: PHP/…. Magħhom jgħoddu server_tokens off; f'Nginx u ServerTokens Prod u ServerSignature Off f'Apache. Dan ma jagħmilx server aktar sikur, imma jneħħi mill-iskans awtomatiċi lista lesta ta' verżjonijiet. L-istat tal-patch tiegħek tivverifikah wara permezz tal-amministratur tal-pakketti u l-proċessi, mhux permezz tal-headers.

Il-karta tal-viżta f'kull tweġiba

Min wara l-21 ta' Ottubru 2026 ried jaf kemm servers għadhom juru verżjoni qadima ta' PHP ma kellux għalfejn ifittex wisq. Ħafna servers tal-web isemmu l-verżjoni ta' PHP f'kull tweġiba, pereżempju bħala X-Powered-By: PHP/8.2.20. Servizzi ta' tiftix fuq l-internet kollu jaqraw dawn l-indikazzjonijiet, u Unit 42 ta' Palo Alto Networks għodd għal PHP2Shell aktar minn 22,6 miljun istanza esposta u potenzjalment vulnerabbli.

Għall-attakkanti indikazzjoni bħal din hija shortcut. Jistgħu jisseparaw il-miri minn qabel, minflok jippruvaw għomja. Għall-operaturi, min-naħa l-oħra, hija inutli, għax lanqas ma tipprova l-istat tal-patch proprju: id-distribuzzjonijiet spiss iwasslu korrezzjonijiet bħala backport mingħajr numru ġdid tal-verżjoni.

Dan l-artikolu juri fejn PHP u s-servers tal-web jiżvelaw tagħrif dwar il-verżjoni u kif titfi l-indikazzjonijiet. Jgħid ukoll bil-miftuħ x'jagħti dan u x'ma jagħtix.

Fejn kullimkien jidhru indikazzjonijiet tal-verżjoni

Il-verżjoni ta' PHP hija biss waħda minn bosta postijiet. Ħarsa sħiħa tixraq, għax post wieħed minsi jneħħi l-valur tal-miżuri l-oħra.

Post tas-sejba Eżempju Titfi permezz ta'
Header HTTP ta' PHP X-Powered-By: PHP/8.3.x expose_php = Off fil-php.ini
Header HTTP tas-server tal-web Server: nginx/1.x jew Server: Apache/2.4.x (Debian) server_tokens off; jew ServerTokens Prod
Paġni ta' żball tas-server tal-web linja tal-verżjoni taħt paġni 404 jew 500 l-istess issettjar, f'Apache addizzjonalment ServerSignature Off
Headers tal-applikazzjoni indikazzjonijiet proprji X-Powered-By ta' frameworks fastcgi_hide_header jew Header unset
Fajls fil-webroot fajls ta' test phpinfo(), fajls readme u changelog ħassar jew ibblokka
Messaġġi ta' żball ta' PHP mogħdijiet u dettalji tal-verżjoni fil-browser display_errors = Off

Fajls ta' test b'phpinfo() huma s-sors l-iktar produttiv għall-attakkanti. Jiżvelaw mhux biss il-verżjoni, imma l-konfigurazzjoni kollha; aktar dwar dan fl-artikolu Fajls phpinfo(): għaliex iridu jisparixxu.

Itfi expose_php fil-php.ini

Skont il-manwal ta' PHP, expose_php huwa mixgħul b'mod standard u jista' jinbidel biss fil-php.ini, mhux fil-pool, mhux permezz ta' .htaccess u mhux waqt it-tħaddim. Issettja l-valur għalhekk fil-php.ini ta' kull modalità tat-tħaddim li twassal websajts, jiġifieri f'Debian u Ubuntu pereżempju taħt /etc/php/<version>/fpm/ u, jekk meħtieġ, /etc/php/<version>/apache2/.

; php.ini tas-SAPI tal-web, wara erġa' ibda PHP-FPM jew Apache
expose_php = Off

Jekk jaħdmu diversi verżjonijiet ta' PHP b'mod parallel, kull waħda teħtieġ id-daħla tagħha. Restart tas-servizz rispettiv huwa obbligatorju, għax PHP jaqra l-php.ini biss mal-bidu.

Qassar is-Server-headers f'Nginx u Apache

Nginx isemmi l-verżjoni tiegħu b'mod standard fis-Server-header u fuq paġni ta' żball. B'server_tokens off; jibqa' biss l-isem tal-prodott. Barra minn hekk header X-Powered-By li l-applikazzjoni tissettja hi stess jista' jiġi ffiltrat b'fastcgi_hide_header. Skont id-dokumentazzjoni ta' Nginx, Nginx jaħbi minnu nnifsu biss Status u X-Accel-…, mhux X-Powered-By.

# fil-blokk http, japplika għall-websajts kollha
server_tokens off;
fastcgi_hide_header X-Powered-By;

F'Apache ServerTokens jikkontrolla s-Server-header u fl-istess ħin il-linja tal-verżjoni taħt paġni ta' żball. L-issettjar japplika, skont id-dokumentazzjoni ta' Apache, biss fuq is-server kollu, mhux għal kull VirtualHost. Peress li tweġibiet ta' PHP-FPM permezz ta' mod_proxy_fcgi jispiċċaw f'tabella oħra tal-headers minn tweġibiet tas-server innifsu, issettja t-tneħħija fiż-żewġ varjanti.

# konfigurazzjoni fuq is-server kollu, pereżempju /etc/apache2/conf-available/security.conf
ServerTokens Prod
ServerSignature Off

# jeħtieġ mod_headers
<IfModule mod_headers.c>
    Header unset X-Powered-By
    Header always unset X-Powered-By
</IfModule>

Ivverifika l-konfigurazzjoni qabel ir-reload b'nginx -t jew apachectl configtest. Kif tixgħel protezzjoni attiva għall-viżitaturi permezz tal-headers, pereżempju b'HSTS jew Content-Security-Policy, tiddeskrivih il-gwida Headers tas-sigurtà għal websajts.

Hekk tivverifika r-riżultat minn barra

Wara l-bidla ivverifika kull dominju waħdu, possibbilment anke paġna ta' żball. Il-kmandi li ġejjin jibagħtu biss talbiet normali lill-websajts tiegħek stess:

# Headers tal-paġna ewlenija
curl -sI https://www.example.de/ | grep -iE '^(server|x-powered-by):'
# Headers ta' paġna li ma teżistix
curl -sI https://www.example.de/gibt-es-nicht-4711 | grep -iE '^(server|x-powered-by):'

Jiġi mistenni Server-header mingħajr numru ta' verżjoni u l-ebda X-Powered-By. Jekk għadha tidher verżjoni ta' PHP, ġeneralment hija attiva php.ini oħra jew servizz għadu ma tqabbidx mill-ġdid. Jekk hemm CDN quddiem is-server, ivverifika addizzjonalment is-server tal-oriġini direttament, sakemm jintlaħaq.

Suġġeriment

Żomm xorta waħda l-verżjoni ta' PHP internament: fl-inventarju tas-servers tiegħek, bl-istat tal-pakkett u d-data tal-aħħar verifika. L-istat tal-patch tipprovah permezz tas-server, kif deskritt f'Ivverifika sew il-verżjoni ta' PHP u l-istat tal-patch.

X'jagħti l-ħbi u x'ma jagħtix

Minn perspettiva onesta, li titfi l-indikazzjonijiet tal-verżjoni hija miżura żgħira b'sforz żgħir. Tnaqqas il-probabbiltà li tidher f'tiftixiet immirati għal verżjonijiet speċifiċi, u tnaqqas it-tagħrif li attakkant jikseb mingħajr sforz.

Imma ma tipproteġix minn attakki awtomatiċi li sempliċement jibagħtu t-talbiet tagħhom lil kull server aċċessibbli. Kif jimxu skans bħal dawn tiddeskrivih l-artikolu Skans massivi wara PHP mhux ippatchjat. Kontra PHP2Shell jgħin biss l-aġġornament għal PHP 8.5.12, 8.4.27, 8.3.36 jew 8.2.35 jew backport ikkonfermat, segwit mir-restart tal-proċessi kollha ta' PHP.

Effett sekondarju, min-naħa l-oħra, huwa utli ħafna: min jitfi l-indikazzjonijiet tal-verżjoni lejn barra jrid jirreġistra l-verżjonijiet tiegħu internament b'mod nadif. F'sitwazzjoni bħal PHP2Shell eżattament din il-ħarsa ġenerali tiddeċiedi kemm malajr taf liema servers huma affettwati.

Il-ħbi għalhekk huwa sensibbli bħala parti minn tisħiħ bażiku, mhux bħala miżura waħedha. Jappartjeni fl-istess lista ta' kontroll ma' output tal-iżbalji mitfi, fajls ta' test imħassra u valuri ta' konfigurazzjoni mblukkati.

Kif tgħin PHP SOS b'mod konkret?

  • Niġbru l-postijiet tas-sejba: nivverifikaw headers, paġni ta' żball u webroot tad-dominji kollha għal indikazzjonijiet tal-verżjoni u fajls ta' test minsija.
  • Nadattaw il-konfigurazzjoni: nissettjaw expose_php, Server-headers u filtri tal-headers f'kull verżjoni ta' PHP u kull server tal-web u nerġgħu nibdew is-servizzi b'mod ikkontrollat.
  • Nippruvaw l-istat tal-patch internament: niddokumentaw verżjonijiet u stati tal-pakketti fejn jappartjenu, fl-inventarju minflok fil-header HTTP.
  • Nintegraw fit-tisħiħ: il-miżura hija parti mit-Tisħiħ tas-server għal servers tal-web ta' PHP tagħna.

Mistoqsijiet frekwenti

Is-server tiegħi jsir sikur bl-expose_php = Off?

Le. L-issettjar ineħħi biss l-indikazzjoni tal-verżjoni mill-header HTTP. Verżjoni vulnerabbli ta' PHP tibqa' vulnerabbli, u attakki awtomatiċi spiss jipprovaw it-talbiet tagħhom f'kull server aċċessibbli xorta waħda. Madankollu jneħħu mill-attakkanti għażla minn qabel faċli u jnaqqsu l-viżibbiltà fil-magni tat-tiftix għal servers.

Nista' nissettja expose_php fil-pool FPM jew permezz ta' .htaccess?

Skont il-manwal ta' PHP, expose_php jista' jinbidel biss fil-php.ini. Għalhekk issettja l-valur fil-php.ini ta' kull SAPI tal-web u wara erġa' ibda PHP-FPM jew Apache.

Għaliex għadni nara X-Powered-By minkejja expose_php = Off?

Allura ġeneralment l-applikazzjoni jew framework tissettja l-header stess, jew php.ini oħra hija attiva. Neħħi l-header addizzjonalment fis-server tal-web: b'fastcgi_hide_header f'Nginx jew Header unset f'Apache.

Kif nivverifika l-istat tal-patch jekk il-verżjoni mhijiex aktar viżibbli?

Permezz tas-server innifsu: amministratur tal-pakketti, changelog tal-pakkett bin-numri CVE u l-ħin tal-bidu tal-proċessi ta' PHP. L-indikazzjoni fil-header HTTP kienet xorta waħda mhix prova, għax id-distribuzzjonijiet ħafna drabi jdaħħlu backports mingħajr numru ġdid tal-verżjoni.

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