Sitwazzjoni attwali: PHP2Shell. Żewġ vulnerabbiltajiet kritiċi ta' PHP (CVSS 9,2) jippermettu kodiċi malizzjuż mingħajr login. Patches mill-21/10/2026.X'għandu jsir issa →

Ipprojbixxi l-eżekuzzjoni ta' PHP f'folders tal-upload

Webshell teħtieġ żewġ affarijiet: folder fejn tista' tinkiteb, u server li jesegwiha. Hekk tneħħi t-tieni waħda, f'kull folder li jista' jinkiteb, mhux biss f'uploads.

Stat 6 min. qariTisħiħ u konfigurazzjoni

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.

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:

# 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. 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:

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.

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:

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

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

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.

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.

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

Kuntatt immedjat

Kull siegħa tgħodd. Iktbu lilna issa.

Iddeskrivu fil-qosor is-sistema, il-verżjoni ta' PHP u dak li osservajtu. Nikkuntattjawkom, niċċaraw is-sitwazzjoni u naħdmu mill-bogħod sakemm l-inċident jingħalaq u jiġi ddokumentat.

Għajnuna immedjata