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.
Ż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.