# Ipprojbixxi l-eżekuzzjoni ta' PHP f'folders tal-upload

> Ipprojbixxi l-eżekuzzjoni ta' PHP fl-uploads: sib folders li jinkitbu, issettja blokki fi Nginx, Apache u PHP-FPM sew u ittestja b'fajl bla ħsara.

Sors: https://phpsos.de/mt/blog/php-in-uploads-verbieten/  
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:** Biex tipprojbixxi l-eżekuzzjoni ta' PHP fl-uploads, l-ewwel iddetermina l-folders kollha fejn PHP jista' jikteb, u wara ibblokka f'kull wieħed minnhom l-eżekuzzjoni ta' skripts fil-konfigurazzjoni tas-server, mhux b'`.htaccess`. Fi Nginx il-blokk irid jaħdem qabel il-blokk ġenerali ta' PHP, f'Apache jappartjeni fil-VirtualHost b'`AllowOverride None`. `security.limit_extensions = .php` fil-pool FPM u test b'fajl bla ħsara itemmu x-xogħol.

## Għaliex proprju issa l-folders tal-upload jgħoddu

Wara vulnerabbiltà kritika bħal PHP2Shell l-attakkanti rari jridu jesegwixxu kodiċi darba biss. Iridu jirritornaw, anke meta s-server jiġi ppatchjat aktar tard. L-aktar triq sempliċi għal dan hija webshell: fajl żgħir ta' PHP, mqiegħed f'folder li jista' jinkiteb u mitlub aktar tard mill-browser.

Patch ma jneħħix fajl bħal dan. Min kien online mhux ippatchjat mill-20 ta' Ottubru 2026 għalhekk m'għandux biss jaġġorna, imma wkoll jivverifika jekk xi mkien hemm fajls ġodda ta' PHP, u fil-futur jipprevjeni li jiġu eżegwiti. Kif tinterpreta s-sejbiet tiddeskrivih [Fajls PHP fil-folder tal-upload: interpreta sew is-sejbiet](https://phpsos.de/mt/blog/php-dateien-im-upload-ordner/).

Il-blokk tal-eżekuzzjoni jaħdem fuq it-tieni kundizzjoni. Ma jipprevjenix li fajl jitpoġġa, imma li s-server jittrattah bħala programm.

## L-ewwel l-inventarju: fejn jista' jikteb PHP?

Il-biċċa l-kbira tal-gwidi jsemmu biss il-folder tal-upload. Fil-prattika applikazzjoni ta' PHP tikteb f'ħafna aktar postijiet. Kull wieħed minnhom li huwa aċċessibbli permezz tas-server tal-web jeħtieġ il-blokk.

| Tip ta' folder | Kontenut tipiku | Għaliex jista' jinkiteb |
|---|---|---|
| Uploads, midja | immaġini, PDFs, attachments | utenti u redazzjoni jgħabbu fajls |
| Cache | paġni ġenerati, thumbnails | l-applikazzjoni tħaffef it-twassil |
| Temp, importazzjoni, esportazzjoni | fajls CSV, stadji intermedji | interfaces u skambju ta' data |
| Backups fil-webroot | `.zip`, `.sql` | estensjonijiet jagħmlu backup „fuq il-post” |
| Logs fil-webroot | logs tal-iżbalji u tad-debug | applikazzjonijiet ikkonfigurati ħażin |

Liema folders huma dawn fuq is-server tiegħek turi tiftix bid-drittijiet tal-utent tar-runtime. Ma jibdel xejn:

```bash
# Il-folders kollha taħt /var/www fejn l-utent ta' PHP jista' jikteb
# (adatta l-utent: www-data, nginx, apache jew utent proprju tal-pool)
sudo -u www-data find /var/www -type d -writable 2>/dev/null | sort
# F'dawn il-folders diġà hemm fajls PHP?
sudo -u www-data find /var/www -type d -writable -print0 2>/dev/null \
  | xargs -0 -I{} find {} -maxdepth 1 -type f -iname "*.ph*" 2>/dev/null
```

Jekk l-ewwel tiftix jirritorna l-webroot kollu, il-kodiċi tal-programm jappartjeni lill-utent tar-runtime. Dan għandek tibdlu qabel, kif tiddeskrivi l-gwida [Drittijiet tal-fajls fuq is-server tal-web](https://phpsos.de/mt/ratgeber/dateirechte-webserver/). Inkella ma jkun hemm l-ebda folder li ma jkollux bżonn jiġi mblukkat.

## Ipprojbixxi l-eżekuzzjoni ta' PHP fl-uploads: Nginx

F'Nginx l-ordni tiddeċiedi. Skont id-dokumentazzjoni ta' Nginx, espressjonijiet regolari jiġu vverifikati fl-ordni tal-fajl tal-konfigurazzjoni, u l-ewwel taqbila tirbaħ. Jekk il-blokk ġenerali `location ~ \.php$` jinsab qabel il-blokk tiegħek, il-fajl jiġi eżegwit. Prefix-location sempliċi mingħajr `^~` ma tipproteġix għall-istess raġuni.

Sigur huwa espressjoni regolari għall-folders mblukkati kollha li tinsab qabel il-blokk ta' PHP. Tkopri wkoll estensjonijiet użati rarament:

```nginx
server {
    # ... konfigurazzjoni bażika ...

    # 1. Blokk għal folders li jinkitbu, JRID jinsab qabel il-blokk ta' PHP
    location ~* ^/(uploads|media|cache|tmp|export)/.*\.(php\d?|phtml|phar|pht|phps)$ {
        deny all;
    }

    # 2. Blokk ġenerali ta' PHP: għaddi biss fajls li jeżistu
    location ~ \.php$ {
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/seite1.sock;
    }
}
```

Adatta l-ismijiet tal-folders għall-inventarju tiegħek. F'applikazzjonijiet b'punt tad-dħul wieħed it-triq permezz ta' lista ta' permess hija saħansitra aktar b'saħħitha; il-mudell juri [Ikkonfigura Nginx għal PHP b'mod sigur](https://phpsos.de/mt/blog/nginx-fuer-php-absichern/).

## Apache u PHP-FPM: il-blokk fil-post it-tajjeb

F'Apache l-blokk jappartjeni fil-konfigurazzjoni tas-server jew fil-VirtualHost. `.htaccess` fil-folder tal-upload mhijiex adattata, għax kull min jista' jikteb hemmhekk jista' jibdilha. Għall-webroot kollu għalhekk japplika `AllowOverride None`. Skont id-dokumentazzjoni ta' Apache, `AllowOverride` huwa permess biss f'blokki `<Directory>` mingħajr espressjonijiet regolari, allura tissettjah fil-webroot u l-blokk b'`<DirectoryMatch>` taħtu:

```apache
<Directory /var/www/seite1/public>
    AllowOverride None
    Require all granted
</Directory>

<DirectoryMatch "^/var/www/seite1/public/(uploads|media|cache|tmp|export)/">
    <FilesMatch "\.(php\d?|phtml|phar|pht|phps)$">
        Require all denied
    </FilesMatch>
</DirectoryMatch>
```

Jekk għadu jaħdem mod_php, żid fl-istess blokk `php_admin_flag engine off`. Ma' PHP-FPM taħdem barriera oħra fil-pool: `security.limit_extensions` jiddetermina liema estensjonijiet FPM jesegwixxi għalkollox. Skont il-manwal ta' PHP l-istandard huwa `.php .phar`; hija rakkomandata r-restrizzjoni għal `.php`.

```ini
; fil-pool, pereżempju /etc/php/8.3/fpm/pool.d/seite1.conf
security.limit_extensions = .php
```

## Ittestja b'fajl bla ħsara

Jekk il-blokk jaħdimx juri biss test. Poġġi għal ftit f'kull folder imblukkat fajl li sempliċement juri test, iftaħu mid-dominju u wara ħassru.

1. Ivverifika l-konfigurazzjoni: `nginx -t` jew `apachectl configtest`, imbagħad erġa' tgħabbi.
2. Oħloq fajl ta' test, pereżempju `uploads/sperrtest.php` bil-kontenut `<?php echo 'ausgefuehrt';`.
3. Iftaħ b'`curl -s -o /dev/null -w "%{http_code}\n" https://www.example.de/uploads/sperrtest.php`. Jiġi mistenni `403`.
4. Jekk minflok jidher `200` u t-test „ausgefuehrt”, il-blokk ma jaħdimx. Ivverifika l-konfigurazzjoni u l-ordni.
5. Ħassar il-fajl ta' test u erġa' agħmel it-test għal kull folder u kull websajt.

> **Importanti:**
> Jekk fl-inventarju diġà ssib fajls PHP mhux magħrufa f'folders li jinkitbu, tħassar xejn bla ħsieb. L-ewwel salva l-istat u l-logs, għax dawn il-fajls huma provi. Kif tipproċedi wara tiddeskrivih [Agħraf u neħħi webshells](https://phpsos.de/mt/ratgeber/webshell-erkennen/).

Kif il-funzjonijiet tal-upload jinbnew b'mod sigur fil-kodiċi, bil-verifika tat-tip u l-ħażna barra mill-webroot, jinsab fil-gwida [Implimenta uploads ta' fajls f'PHP b'mod sigur](https://phpsos.de/mt/ratgeber/datei-upload-sicher/).

## Konklużjoni: tikteb iva, tesegwixxi le

Il-blokk tal-eżekuzzjoni f'folders li jinkitbu huwa waħda mill-aktar miżuri effettivi kontra backdoors permanenti. Jiswa ftit linji ta' konfigurazzjoni u ma jkisser xejn f'applikazzjonijiet mibnija sewwa. Id-deċiżivi huma tliet affarijiet: inventarju sħiħ minflok biss il-folder ovvju tal-upload, l-ordni t-tajba fi Nginx jew il-livell t-tajjeb f'Apache u test veru b'fajl bla ħsara.

Ikkomplementat minn sidien separati għall-kodiċi tal-programm, `security.limit_extensions` fil-pool u tiftix regolari għal fajls ġodda ta' PHP jinħoloq stat fejn fajl imqiegħed jibqa' bla dubju skomdu, imma kważi ma jistax jintuża aktar. Dan la jissostitwixxi l-aġġornament u lanqas it-tiftix tat-traċċi, imma jneħħi mill-attakkanti waħda mill-aktar għodod importanti tagħhom.

## Kif tgħin PHP SOS b'mod konkret?

- **Inventarju:** niddeterminaw il-folders kollha li jinkitbu għal kull websajt u nivverifikawhom għal fajls PHP eżistenti.
- **Nissettjaw il-blokki:** nidħlu l-blokki tal-eżekuzzjoni fi Nginx, Apache u PHP-FPM, fl-ordni t-tajba u mingħajr dipendenza fuq `.htaccess`.
- **Nittestjaw:** kull blokk nivverifikawh b'fajl bla ħsara u niddokumentaw ir-riżultat.
- **Innaddfu:** f'każ ta' sejbiet nieħdu f'idejna s-salvataġġ tat-traċċi u t-[Tneħħija tal-malware](https://phpsos.de/mt/leistungen/malware-entfernung/).


## Mistoqsijiet frekwenti

**Huwa biżżejjed .htaccess fil-folder tal-upload biex tiġi pprojbita PHP?**  
Mhux b'mod affidabbli. Min jista' jikteb fil-folder jista' jibdel jew jissostitwixxi wkoll l-.htaccess. Il-blokk jappartjeni fil-konfigurazzjoni tas-server jew fil-VirtualHost, u għall-webroot għandu japplika AllowOverride None.

**Liema folders għandi nibblokka?**  
Il-folders kollha li fihom l-utent ta' PHP jista' jikteb u li huma aċċessibbli permezz tas-server tal-web. Minbarra l-folders tal-upload, spiss dawn huma direttorji ta' cache, temp, importazzjoni, esportazzjoni u backup. Iddeterminahom b'tiftix bħala l-utent tar-runtime.

**Il-blokk iħassar il-websajt tiegħi?**  
Bħala regola le, għax f'folders tal-upload u tal-cache ta' applikazzjonijiet nodfa ma jinsabu l-ebda skripts li jissejħu direttament. Xi estensjonijiet, madankollu, jaħżnu hemmhekk fajls PHP. Ittestja għalhekk wara l-bidla l-funzjonijiet l-aktar importanti.

**Il-blokk jipproteġi minn PHP2Shell?**  
Le. PHP2Shell huwa vulnerabbiltà fl-interpretatur ta' PHP li tingħalaq biss bl-aġġornament u r-restart tal-workers kollha. Il-blokk, madankollu, jipprevjeni li fajl imqiegħed aktar tard jiġi mitlub mill-browser u użat bħala backdoor permanenti.

## Sorsi

- [Nginx: għażla tal-blokki location](https://nginx.org/en/docs/http/ngx_http_core_module.html)
- [Apache: funzjonijiet ewlenin (AllowOverride, FilesMatch)](https://httpd.apache.org/docs/2.4/mod/core.html)
- [Manwal ta' PHP: konfigurazzjoni ta' FPM (security.limit_extensions)](https://www.php.net/manual/en/install.fpm.configuration.php)
- [OWASP Cheat Sheets (File Upload)](https://cheatsheetseries.owasp.org/)
