# Iarratais uaslódála a scagadh ag an imeall: deiseanna agus rioscaí

> multipart/form-data a scagadh ag an seachfhreastalaí nó sa WAF: cathain a chabhraíonn an beart idirthréimhseach neamhoifigiúil, cad a bhriseann sé.

Foinse: https://phpsos.de/ga/blog/upload-anfragen-am-rand-filtern/  
Staid: 25/10/2026  
Soláthraí: PHP SOS, Cabhair éigeandála PHP agus slándáil freastalaí. Cabhair láithreach trí WhatsApp: https://wa.me/491736494914?text=Dia%20duit%2C%20a%20PHP%20SOS%2C%20t%C3%A1%20cabhair%20de%20dh%C3%ADth%20orainn%20len%C3%A1r%20bhfreastala%C3%AD%20PHP.%20Cuideachta%3A%20%E2%80%A6%20Su%C3%ADomh%20gr%C3%A9as%C3%A1in%3A%20%E2%80%A6

**Go achomair:** Ciallaíonn iarratais uaslódála a scagadh ag an imeall iarratais POST de chineál `multipart/form-data` a dhiúltú ag an seachfhreastalaí, an freastalaí gréasáin nó sa WAF mura dtéann siad chuig cosán uaslódála aitheanta. Molann údair speisialaithe é mar bheart sealadach, neamhoifigiúil in aghaidh PHP2Shell. Is féidir leis foirmeacha agus uaslódálacha a bhriseadh agus ní chuireann sé ionad an nuashonraithe riamh. Téigh ar aghaidh i dtrí chéim: logáil, eisceachtaí a shocrú, bac ansin amháin, le dáta deiridh seasta.

## Moladh ón bplé speisialaithe

Go dtí go bhfuil freastalaí paistithe, cuardaíonn oibritheoirí gach rud a laghdaíonn an riosca. Sa phlé speisialaithe ar PHP2Shell tháinig moladh chun cinn: iarratais POST sa fhormáid `multipart/form-data`, is é sin an fhormáid d'uaslódálacha comhad agus do roinnt foirmeacha, a cheadú ach san áit a bhfuil súil leo ag an bhfeidhmchlár i ndáiríre. Diúltaítear do gach ceann eile ag an seachfhreastalaí nó sa Web Application Firewall.

Tá an t-aicmiú tábhachtach. Ní ó php.net a thagann an moladh, ach ó údair speisialaithe, agus tá sé beartaithe go sainráite mar bheart sealadach. Luann php.net bearta idirthréimhseacha dá chuid féin, bailithe ag [Gníomhartha láithreacha mura féidir leat paistiú fós](https://phpsos.de/ga/php2shell/sofortmassnahmen-ohne-patch/). Is féidir leis an scagaire iad seo a chomhlánú, ní iad a athsholáthar.

Déanaimid cur síos anseo ar conas a thugann tú isteach ar bhealach rialaithe é. Fágaimid mionsonraí d'aon turas faoin gcúis a gcabhródh sé in aghaidh cé na hionsaithe.

## An méid a dhéanann an scagaire agus cá ndéanann sé dochar

Is é an smaoineamh taobh thiar de laghdú ar an dromchla ionsaithe. Níl uaslódálacha comhad de dhíth ar fhormhór leathanach suímh gréasáin. Mura nglacann ach cúpla cosán aitheanta le hiarratais den sórt sin a thuilleadh, ní shroicheann cuid mhór d'iarrachtaí ionsaithe féideartha PHP ar chor ar bith.

Tá an taobh eile chomh soiléir. Titeann gach feidhm a sheolann iarratais multipart agus atá as láthair ón liosta eisceachtaí. Ní bhaineann sé seo le foirmeacha uaslódála soiléire amháin.

| Feidhm | Úsáideann multipart/form-data go minic | Riosca nuair a bhacann tú |
|---|---|---|
| Foirmeacha teagmhála agus iarratais le ceangaltán | tá | cailltear iarratais |
| Bainistiú meán sa CMS-backend | tá | ní féidir leis an eagarthóireacht íomhánna a uaslódáil |
| Allmhairiú táirgí nó custaiméirí | tá | briseann comhéadain go ciúin |
| Foirmeacha gan ceangaltán | uaireanta | de réir an tógálaí foirme |
| Comhéadain agus freagraí ó sheirbhísí seachtracha | annamh, ach féideartha | tugtar faoi deara an teip go déanach |

Chomh maith leis sin tá fadhb bhunúsach ann: tugann Cloudflare, a chuir rialacha cosanta i bhfeidhm féin in aghaidh PHP2Shell, rabhadh nach leor rialacha bunaithe ar shonraí an iarratais amháin. Conas a smaoiníonn tú ar an dá leibhéal le chéile, déanann [WAF nó nuashonrú: cén fáth a bhfuil an bheirt acu de dhíth](https://phpsos.de/ga/blog/waf-oder-update/) cur síos air.

## Céim 1: logáil ar dtús, bac ansin

Sula mbacann tú aon rud, faigh amach cé na cosáin a fhaigheann iarratais multipart ar chor ar bith. Ní thaispeánann na gnáthlogaí an cineál inneachair. Do Nginx cruthaigh log dá chuid féin go sealadach dá bhrí sin:

```nginx
# sa bhloc 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';

# sa bhloc server
# Tabhair faoi deara: cuireann access_log sa bhloc server an log oidhreachta ina áit,
# mar sin sonraigh an gnáthlog anseo arís.
access_log /var/log/nginx/access.log combined;
access_log /var/log/nginx/multipart-test.log multipart if=$multipart_fremd;
```

Is samplaí iad na hiontrálacha i `$upload_pfad`. Tosaigh le liosta eisceachtaí folamh, ansin léiríonn an log tástála gach POST multipart. Faoi Apache éiríonn leis an rud céanna le hathróg timpeallachta:

```apache
# sa VirtualHost
SetEnvIfNoCase Content-Type "^multipart/form-data" ist_multipart
CustomLog ${APACHE_LOG_DIR}/multipart-test.log combined env=ist_multipart
```

Lig don log rith ar feadh cúpla lá, go hidéalach thar thréimhse inar bhí an eagarthóireacht, iarratasóirí agus comhéadain gníomhach freisin.

## Céim 2: eisceachtaí a shocrú agus bac ar bhealach rialaithe

Ón log tástála díorthaíonn tú na cosáin a bhfuil uaslódálacha de dhíth orthu go dlisteanach. Cuir an liosta i gcomparáid leis na daoine freagracha: cé a chothaíonn inneachar, cé na foirmeacha atá ann, cé na seirbhísí a sheolann sonraí?

1. Liosta eisceachtaí a chruthú ó log agus ó cheisteanna, agus é a iontráil i `$upload_pfad` nó sna línte `RewriteCond`.
2. An scagaire a ghníomhachtú ar dtús ar thimpeallacht thástála nó i bhfuinneog shocair ama.
3. Gach foirm, uaslódáil agus bealach ordaithe a imirt tú féin.
4. Faire ar an log earráidí ar iarratais dhiúltaithe (stádas 403) agus an liosta a leathnú más gá.
5. Dáta deiridh a shocrú: tar éis an nuashonraithe PHP agus atosú gach worker baintear an scagaire arís.

In Nginx cuireann tú leis an mbac sa bhloc freastalaí chuige sin:

```nginx
# sa bhloc server, tar éis measúnú na céime logála
if ($multipart_fremd) {
    return 403;
}
```

In Apache glacann `mod_rewrite` leis an tasc. De réir dhoiciméadacht Apache ceanglaítear coinníollacha iolracha le AGUS:

```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]
```

Má úsáideann tú CDN nó WAF scamall, is féidir an loighic chéanna a léiriú mar riail dá cuid féin go minic. Anseo freisin: i mód logála ar dtús, bac ansin.

> **Tábhachtach:**
> Ní ionadaí é an scagaire ar nuashonrú PHP agus ní cúis é chun é a chur siar. Ní dhúntar PHP2Shell ach le PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35 nó backport deimhnithe, agus atosú gach próiseas PHP ina dhiaidh.

## An beart a aicmiú i gceart

Baineann an scagaire uaslódála le sraith moltaí eile atá ag scaipeadh faoi láthair. Tá cuid acu ciallmhar, cuid eile dochrach. Tugann [Comhairle chontúirteach bhréagach faoi PHP2Shell](https://phpsos.de/ga/blog/gefaehrliche-falschtipps/) forbhreathnú ar cé na moltaí a dhiúltaíonn údair speisialaithe, mar shampla gach iarratas le fianán seisiúin a bhlocáil.

Conas a phróiseálann PHP uaslódálacha go hinmheánach agus cén fáth a bhfuil ról speisialta ag an bhformáid `multipart/form-data` ansin, míníonn [Conas a láimhseálann PHP uaslódálacha comhad](https://phpsos.de/ga/php/datei-uploads-intern/). I gcás fhormhór na gcuideachtaí, áfach, ní hé an scagaire an chéim is tábhachtaí, ach dáta soiléir don nuashonrú.

## Conclúid: uirlis do laethanta, ní do mhíonna

Is sampla tipiciúil de bheart éigeandála é an scagaire uaslódála ag an imeall: is féidir leis an dromchla ionsaithe a laghdú sa tréimhse idirthréimhseach, ach tá fo-éifeachtaí aige agus níl tacaíocht oifigiúil ó php.net aige. Úsáidte i gceart, le céim logála, liosta eisceachtaí comhaontaithe, tástálacha agus dáta deiridh seasta, is inchosanta é. Gan na céimeanna seo bíonn riosca ann d'iarratais caillte, d'eagarthóireachtaí bacáilte agus de bhotúin chiúine comhéadain.

Déan an cinneadh d'aon turas dá bhrí sin agus taifead cé a rinne é agus cathain. Agus coinnigh an t-ord i gcuimhne: tagann an nuashonrú PHP le hatosú gach worker ar dtús, cuireann bearta idirthréimhseacha php.net an t-am go dtí sin thar bráid, agus is ciseal breise ar a mhéad é an scagaire.

## Conas a chabhraíonn PHP SOS go nithiúil?

- **An cás a mheas:** Soiléirímid an bhfuil scagaire uaslódála ciallmhar i do chás ar chor ar bith nó an bhfuil an nuashonrú indéanta níos tapúla.
- **Logáil agus measúnú:** Socraímid an chéim logála agus díorthaímid an liosta eisceachtaí ó fhíorrochtana.
- **Bac rialaithe:** Gníomhachtaímid an scagaire, déanaimid tástáil ar fhoirmeacha agus ar bhealaí ordaithe agus déanaimid iarratais dhiúltaithe a mhonatóiriú.
- **Aisghabháil ghlan:** Faoi chuimsiú [WAF agus paistiú fíorúil](https://phpsos.de/ga/leistungen/waf-virtuelles-patching/) bainimid an scagaire arís tar éis an nuashonraithe.


## Ceisteanna coitianta

**An moladh oifigiúil ó php.net é iarratais multipart a scagadh?**  
Ní hea. Luann php.net bearta idirthréimhseacha eile, mar shampla teorainneacha do post_max_size agus session.upload_progress a mhúchadh. Is moladh ó phostálacha speisialaithe é scagadh ag an imeall agus tá sé beartaithe go sainráite mar bheart sealadach amháin.

**Cé na feidhmeanna a d'fhéadfadh teipeadh mar gheall ar an scagaire?**  
Gach rud a sheolann comhaid nó foirmeacha i bhformáid multipart agus nach bhfuil ar do liosta eisceachtaí: foirmeacha teagmhála le ceangaltán, foirmeacha iarratais, bainistiú meán sa CMS, feidhmeanna allmhairithe, roinnt comhéadan agus freagraí íocaíochta. Dá bhrí sin tagann céim logála sula mbac tú.

**An gcuireann an scagaire ionad an nuashonraithe PHP?**  
Ní chuireann. Laghdaíonn sé an dromchla ionsaithe sa tréimhse idirthréimhseach ar a mhéad. Tugann Cloudflare féin le fios nach leor rialacha bunaithe ar shonraí an iarratais amháin. Ní dhúntar PHP2Shell ach le leagan paistithe PHP agus atosú gach worker.

**Ar cheart dom iarratais le PHPSESSID a bhlocáil ina ionad?**  
Níor cheart. Diúltaíonn údair speisialaithe go sainráite don chomhairle seo atá ag scaipeadh. Cuireann sé logálacha isteach agus ciseáin siopadóireachta as feidhm gan cosaint iontaofa a thabhairt.

## Foinsí

- [php.net: fógraí slándála](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)
- [Blag Cloudflare](https://blog.cloudflare.com/)
