# Iffiltra talbiet tal-upload fuq il-ġnub: opportunitajiet u riskji

> Iffiltra multipart/form-data fil-proxy jew fil-WAF: meta tgħin il-miżura tranżitorja mhux uffiċjali, x'tkisser u kif tintroduċiha b'mod sigur.

Sors: https://phpsos.de/mt/blog/upload-anfragen-am-rand-filtern/  
Stat: 25/10/2026  
Fornitur: PHP SOS, Għajnuna ta' emerġenza għal PHP u sigurtà tas-server. Għajnuna immedjata fuq WhatsApp: https://wa.me/491736494914?text=Bongu%20PHP%20SOS%2C%20g%C4%A7andna%20b%C5%BConn%20g%C4%A7ajnuna%20bis-server%20tal-PHP%20tag%C4%A7na.%20Kumpanija%3A%20%E2%80%A6%20Websajt%3A%20%E2%80%A6

**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](https://phpsos.de/mt/php2shell/sofortmassnahmen-ohne-patch/). 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](https://phpsos.de/mt/blog/waf-oder-update/).

## 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:

```nginx
# 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:

```apache
# 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?

1. Oħloq lista ta' eċċezzjonijiet mill-protokoll u mill-mistoqsijiet u daħħalha f'`$upload_pfad` jew fil-linji `RewriteCond`.
2. Attiva l-filtru l-ewwel fuq ambjent tat-test jew f'perjodu kwiet.
3. Ilgħab int stess il-formoli, l-uploads u t-toroq tal-ordnijiet kollha.
4. Segwi l-protokoll tal-iżbalji għal talbiet irrifjutati (status 403) u kompli l-lista meta jkun meħtieġ.
5. 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:

```nginx
# 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:

```apache
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.

> **Importanti:**
> 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](https://phpsos.de/mt/blog/gefaehrliche-falschtipps/).

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](https://phpsos.de/mt/php/datei-uploads-intern/). 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](https://phpsos.de/mt/leistungen/waf-virtuelles-patching/) 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.

## Sorsi

- [php.net: avviżi tas-sigurtà](https://www.php.net/)
- [Nginx: ngx_http_map_module](https://nginx.org/en/docs/http/ngx_http_map_module.html)
- [Apache: mod_rewrite](https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html)
- [Blog ta' Cloudflare](https://blog.cloudflare.com/)
