Fil-qosor: Li tiffiltra talbiet tal-upload fuq il-ġnub ifisser li tirrifjuta talbiet POST tat-tip multipart/form-data fil-proxy, fis-server tal-web jew fil-WAF, jekk ma jmorrux lejn mogħdija magħrufa tal-upload. Awturi speċjalizzati jissuġġerixxu dan bħala miżura temporanja u mhux uffiċjali kontra PHP2Shell. Tista' tkisser formoli u uploads u qatt ma tissostitwixxi l-aġġornament. Ipproċedi fi tliet passi: irreġistra, iddetermina l-eċċezzjonijiet, u biss imbagħad ibblokka, b'data ta' tmiem fissa.
Suġġeriment mid-diskussjoni speċjalizzata
Sakemm server ma jiġix ippatchjat, l-operaturi jfittxu kull ma jbaxxi r-riskju. Fid-diskussjoni speċjalizzata dwar PHP2Shell dehret fost l-oħrajn proposta: talbiet POST fil-format multipart/form-data, jiġifieri l-format għal uploads ta' fajls u xi formoli, jiġu permessi biss fejn l-applikazzjoni verament tistennihom. Il-bqija jiġu rrifjutati fil-proxy jew fil-Web Application Firewall.
Importanti hija l-klassifikazzjoni. Il-proposta ma toriġinax minn php.net, imma minn awturi speċjalizzati, u hija espliċitament maħsuba bħala miżura temporanja. php.net isemmi miżuri tranżitorji proprji, miġbura taħt Miżuri immedjati meta ma tistax tippatchja għadek. Il-filtru jista' jikkomplementahom, mhux jissostitwihom.
Hawn niddeskrivu kif tintroduċih b'mod ikkontrollat. Dettalji dwar għaliex u kontra liema attakki jista' jgħin ħallejnihom barra konxjament.
X'jagħmel il-filtru u fejn jagħmel ħsara
L-idea wara huwa tnaqqis tas-superfiċje ta' attakk. Il-biċċa l-kbira tal-paġni ta' websajt ma jeħtieġu l-ebda upload ta' fajls. Jekk biss ftit toroq magħrufa jaċċettaw talbiet bħal dawn, parti kbira minn tentattivi possibbli ta' attakk ma tilħaqx PHP għalkollox.
In-naħa l-oħra hija ċara bl-istess mod. Kull funzjoni li tibgħat talbiet multipart u mhix fuq il-lista tal-eċċezzjonijiet taqa'. Dan ma jolqotx biss formoli ovvji tal-upload.
| Funzjoni | Spiss tuża multipart/form-data | Riskju meta tiġi mblukkata |
|---|---|---|
| Formoli ta' kuntatt u ta' applikazzjoni b'attachment | iva | it-talbiet jintilfu |
| Ġestjoni tal-midja fil-backend tas-CMS | iva | ir-redazzjoni ma tistax issellef immaġini |
| Importazzjoni ta' prodotti jew klijenti | iva | interfaces jinkisru bil-kwiet |
| Formoli mingħajr attachment | xi drabi | skont il-formola |
| Interfaces u rispons ta' servizzi esterni | rari, imma possibbli | it-twaqqif jinnota tard |
Hemm ukoll problema fundamentali: Cloudflare, li nnifsu nieda regoli ta' protezzjoni kontra PHP2Shell, iwissi li regoli bbażati fuq id-data tat-talba waħedha mhumiex biżżejjed. Kif taħseb iż-żewġ livelli flimkien tiddeskrivih WAF jew aġġornament: għaliex għandek bżonn it-tnejn.
Pass 1: l-ewwel irreġistra, imbagħad ibblokka
Qabel ma tibblokka xi ħaġa, sib liema mogħdijiet jirċievu verament talbiet multipart. Il-logs standard ma jurux it-tip tal-kontenut. Għal Nginx għalhekk toħloq temporanjament protokoll proprju:
# fil-blokk http
map $uri $upload_pfad {
default 0;
~^/kontakt/upload\.php$ 1;
~^/admin/medien/ 1;
}
map "$request_method:$upload_pfad:$content_type" $multipart_fremd {
default 0;
"~*^POST:0:multipart/form-data" 1;
}
log_format multipart '$time_iso8601 $remote_addr "$request" "$content_type" $status';
# fil-blokk server
# Attenzjoni: access_log fil-blokk server jissostitwixxi l-protokoll miret,
# għalhekk erġa' indika hawn il-log normali.
access_log /var/log/nginx/access.log combined;
access_log /var/log/nginx/multipart-test.log multipart if=$multipart_fremd;
Id-daħliet f'$upload_pfad huma eżempji. Ibda b'lista vojta ta' eċċezzjonijiet, allura l-protokoll tat-test juri l-POSTs multipart kollha. Taħt Apache l-istess jirnexxi b'varjabbli tal-ambjent:
# fil-VirtualHost
SetEnvIfNoCase Content-Type "^multipart/form-data" ist_multipart
CustomLog ${APACHE_LOG_DIR}/multipart-test.log combined env=ist_multipart
Ħalli l-protokoll jaħdem ftit jiem, idealment matul perjodu fejn kienu attivi wkoll ir-redazzjoni, l-applikanti u l-interfaces.
Pass 2: iddetermina l-eċċezzjonijiet u ibblokka b'mod ikkontrollat
Mill-protokoll tat-test tiddeduċi l-mogħdijiet li jeħtieġu uploads leġittimament. Qabbel il-lista mal-persuni responsabbli: min iżomm il-kontenut, liema formoli hemm, liema servizzi jibagħtu data?
- Oħloq lista ta' eċċezzjonijiet mill-protokoll u mill-mistoqsijiet u daħħalha f'
$upload_pfadjew fil-linjiRewriteCond. - Attiva l-filtru l-ewwel fuq ambjent tat-test jew f'perjodu kwiet.
- Ilgħab int stess il-formoli, l-uploads u t-toroq tal-ordnijiet kollha.
- Segwi l-protokoll tal-iżbalji għal talbiet irrifjutati (status 403) u kompli l-lista meta jkun meħtieġ.
- Iddetermina data ta' tmiem: wara l-aġġornament ta' PHP u r-restart tal-workers kollha, il-filtru jerġa' jitneħħa.
Fi Nginx iżid il-blokk fil-blokk server:
# fil-blokk server, wara l-evalwazzjoni tal-fażi tal-protokoll
if ($multipart_fremd) {
return 403;
}
F'Apache mod_rewrite jieħu f'idejh il-kompitu. Kundizzjonijiet multipli, skont id-dokumentazzjoni ta' Apache, jingħaqdu b'AND:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} =POST
RewriteCond %{HTTP:Content-Type} ^multipart/form-data [NC]
RewriteCond %{REQUEST_URI} !^/kontakt/upload\.php$
RewriteCond %{REQUEST_URI} !^/admin/medien/
RewriteRule ^ - [F]
Jekk tuża CDN jew WAF fil-cloud, l-istess loġika spiss tista' tiġi rappreżentata bħala regola proprja. Hemmhekk ukoll japplika: l-ewwel fil-modalità tal-protokoll, imbagħad ibblokka.
Il-filtru mhuwiex sostitut għall-aġġornament ta' PHP u lanqas raġuni biex jiġi posposti. PHP2Shell huwa rranġat biss b'PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35 jew backport ikkonfermat, segwit mir-restart tal-proċessi kollha ta' PHP.
Iklassifika sew il-miżura
Il-filtru tal-upload jappartjeni f'serje ma' suġġerimenti oħra li bħalissa jiċċirkolaw. Xi wħud huma sensibbli, oħrajn ta' ħsara. Ħarsa ġenerali ta' liema pariri awturi speċjalizzati jirrifjutaw, pereżempju l-imblukkar ta' kull talba b'cookie tas-session, tagħti Pariri perikolużi ħżiena dwar PHP2Shell.
Kif PHP jipproċessa uploads internament u għaliex il-format multipart/form-data għandu rwol partikolari jispjegah Kif PHP jipproċessa uploads ta' fajls. Għall-biċċa l-kbira tal-kumpaniji, madankollu, l-iktar pass importanti mhuwiex il-filtru, imma data ċara għall-aġġornament.
Konklużjoni: għodda għal jiem, mhux għal xhur
Il-filtru tal-upload fuq il-ġnub huwa eżempju tipiku ta' miżura ta' emerġenza: jista' jnaqqas is-superfiċje ta' attakk fiż-żmien tranżitorju, imma għandu effetti sekondarji u l-ebda sostenn uffiċjali minn php.net. Użat sewwa, b'fażi ta' reġistrazzjoni, lista ta' eċċezzjonijiet miftiehma, testijiet u data ta' tmiem fissa, huwa difendibbli. Mingħajr dawn il-passi tirriskja applikazzjonijiet mitlufa, redazzjonijiet imblukkati u żbalji siekta fl-interfaces.
Ħu d-deċiżjoni għalhekk b'mod konxju u żomm bil-miktub min ħadha u meta. U żomm f'moħħok l-ordni: l-ewwel jiġi l-aġġornament ta' PHP bir-restart tal-workers kollha, il-miżuri tranżitorji ta' php.net jgħaddu ż-żmien sa dak il-mument, u l-filtru huwa l-aktar saff addizzjonali.
Kif tgħin PHP SOS b'mod konkret?
- Nevalwaw is-sitwazzjoni: niċċaraw jekk filtru tal-upload huwiex sensibbli fis-sitwazzjoni tiegħek jew jekk l-aġġornament huwiex possibbli aktar mgħaġġel.
- Nirreġistraw u nevalwaw: nistabbilixxu l-fażi tal-protokoll u niddeduċu l-lista tal-eċċezzjonijiet minn aċċessi veri.
- Nibblokkaw b'mod ikkontrollat: nattivaw il-filtru, nittestjaw formoli u toroq tal-ordnijiet u nissorveljaw talbiet irrifjutati.
- Nneħħu nadif: bħala parti mill-WAF u patching virtwali inneħħu l-filtru wara l-aġġornament.
Mistoqsijiet frekwenti
Il-filtrar ta' talbiet multipart huwa rakkomandazzjoni uffiċjali ta' php.net?
Le. php.net isemmi miżuri tranżitorji oħra, bħal limiti għal post_max_size u t-tfixkil ta' session.upload_progress. Il-filtrar fuq il-ġnub huwa suġġeriment minn artikoli speċjalizzati u espliċitament maħsub biss bħala miżura temporanja.
Liema funzjonijiet jistgħu jfallu minħabba l-filtru?
Kull ma jibgħat fajls jew formoli fil-format multipart u mhux fuq il-lista tal-eċċezzjonijiet tiegħek: formoli ta' kuntatt b'attachment, formoli ta' applikazzjoni, ġestjoni tal-midja fis-CMS, funzjonijiet ta' importazzjoni, xi interfaces u rispons tal-pagamenti. Għalhekk qabel il-blokk jiġi perjodu ta' reġistrazzjoni.
Il-filtru jissostitwixxi l-aġġornament ta' PHP?
Le. Fl-aħjar każ inaqqas is-superfiċje ta' attakk fiż-żmien tranżitorju. Cloudflare stess jindika li regoli bbażati fuq id-data tat-talba waħedha mhumiex biżżejjed. PHP2Shell huwa rranġat biss b'verżjoni ppatchjata ta' PHP u r-restart tal-workers kollha.
Għandi minflok inblokka talbiet b'PHPSESSID?
Le. Dan il-parir li jiċċirkola huwa miċħud espliċitament minn awturi speċjalizzati. Iwaqqaf login u baskits mingħajr ma joffri protezzjoni affidabbli.