Fil-qosor: post_max_size jillimita d-daqs totali ta' talba POST, upload_max_filesize il-fajl individwali; l-istandard skont il-manwal ta' PHP huwa 8M u 2M. Il-valuri jridu jaqblu mal-limiti fis-server tal-web u fl-applikazzjoni, inkella l-uploads jonqsu mingħajr messaġġ ċar. Sal-aġġornament ta' PHP2Shell, php.net jirrakkomanda post_max_size = 8M mingħajr uploads jew 32M b'uploads, upload_max_filesize taħtu, issettjat b'mod li l-applikazzjonijiet ma jegħlbuhx.
Meta l-formola tal-applikazzjonijiet fl-għarrieda tisskot
Wara l-miżuri tranżitorji għal PHP2Shell ħafna amministraturi naqqsu post_max_size. Ftit jiem wara d-dipartiment tal-persunal jirrapporta li l-applikazzjonijiet mhumiex jaslu. Il-formola sempliċement terġa' tgħabbi, l-ebda messaġġ ta' żball. Ir-raġuni: it-talba bi tliet attachments PDF kienet akbar mil-limitu l-ġdid, u PHP warrab id-data tal-formola.
L-eżempju juri l-problema bażika. Il-limiti tal-upload jaħdmu f'diversi postijiet fl-istess ħin, u kull post jirreaġixxi b'mod differenti meta jinqabeż. Min jaf il-katina jista' jissettja l-valuri b'mod li jipproteġu mingħajr ma jfixklu l-operat. Kif PHP jipproċessa l-uploads internament jispjegah Kif PHP jipproċessa uploads ta' fajls; l-implimentazzjoni sigura tal-funzjonijiet tal-upload tiddeskrivih il-gwida Implimenta uploads ta' fajls f'PHP b'mod sigur.
Il-katina tal-limiti tal-upload
Talba tgħaddi minn diversi limiti qabel ma l-applikazzjoni tarahom. L-indikazzjonijiet li ġejjin joriġinaw mid-dokumentazzjonijiet ta' Nginx, Apache u PHP:
| Post | Issettjar | Standard skont id-dokumentazzjoni | Meta jinqabeż |
|---|---|---|---|
| Nginx | client_max_body_size |
1m | żball 413 lill-browser |
| Apache minn 2.4.54 | LimitRequestBody |
1 GiB (sa 2.4.53: bla limitu) | tweġiba ta' żball minflok ipproċessar |
| PHP | post_max_size |
8M | $_POST u $_FILES vojta |
| PHP | upload_max_filesize |
2M | il-fajl jiġi rrifjutat b'kodiċi ta' żball |
| PHP | max_file_uploads |
20 | fajls ulterjuri jiġu injorati |
| PHP | max_input_vars |
1000 | oqsma ulterjuri tal-formola jonqsu |
Minn hawn tinqala' regola sempliċi: upload_max_filesize iżgħar minn post_max_size, post_max_size iżgħar mil-limitu fis-server tal-web. Il-manwal ta' PHP jirrakkomanda wkoll li memory_limit ġeneralment ikun akbar minn post_max_size. Matul il-miżura tranżitorja ta' PHP2Shell b'memory_limit=-1 din ir-rwol jieħdu l-limitu permezz ta' container jew cgroup; aktar dwar dan taħt Issettja memory_limit sew.
post_max_size wara PHP2Shell: x'jirrakkomanda php.net
Fl-avviż tas-sigurtà tal-21/10/2026 php.net isemmi għal servers mingħajr aġġornament limiti baxxi tat-talbiet bħala waħda mill-miżuri tranżitorji. Inaqqsu r-riskju ta' mogħdijiet individwali ta' attakk, imma espliċitament mhumiex protezzjoni sħiħa:
- Mingħajr uploads ta' fajls:
post_max_size = 8M. - B'uploads ta' fajls:
post_max_size = 32M. - Fiż-żewġ każijiet: żomm
upload_max_filesizetaħtpost_max_size. - Ikkunsidra wkoll: limiti fis-server tal-web jew fil-proxy għad-daqs deċifrat tat-talba, l-għadd ta' oqsma tal-input, l-għadd ta' partijiet multipart, l-għadd ta' linji tal-header u l-fond tan-nesting. Skont php.net dawn il-limiti jridu jaqbdu wkoll talbiet mingħajr indikazzjoni utli ta'
Content-Length.
Il-valuri jappartjenu fejn l-applikazzjonijiet ma jistgħux jegħlbuhom. Peress li post_max_size u upload_max_filesize skont il-manwal jistgħu jinbidlu fil-livell tad-direttorju, .user.ini jew, ma' mod_php, .htaccess setgħu inkella jerġgħu jgħollu:
; Pool FPM tal-websajt, b'uploads (tranżizzjoni sal-aġġornament)
php_admin_value[post_max_size] = 32M
php_admin_value[upload_max_filesize] = 24M
php_admin_value[max_file_uploads] = 5
Fis-server tal-web iġbed il-limitu ftit 'il fuq, biex talbiet kbar żżejjed ma jaslux saħansitra sa PHP:
# Nginx, fil-blokk server jew location
client_max_body_size 32m;
# Apache, fil-VirtualHost: 32 MiB f'bytes
LimitRequestBody 33554432
Wara erġa' agħmel reload tal-workers kollha ta' PHP u tas-server tal-web. Il-ħarsa ġenerali tal-miżuri tranżitorji kollha tinsab taħt Miżuri immedjati meta ma tistax tippatchja għadek. Jekk u kif talbiet tal-upload jistgħu jiġu ffiltrati wkoll fil-proxy jiddiskutih Iffiltra talbiet tal-upload fuq il-ġnub.
Wara kull bidla ittestja l-formoli bl-akbar talbiet leġittimi: applikazzjonijiet b'diversi attachments, importazzjonijiet ta' prodotti, galleriji ta' immaġini. Valur skars żżejjed iwaqqaf proċessi tan-negozju mingħajr ma xi ħadd jara messaġġ ta' żball.
Iddetermina l-valur t-tajjeb għall-websajt tiegħek
Minflok valuri ġenerali jixraq inventarju qasir. Elenka l-formoli kollha b'uploads u innota l-akbar fajl leġittimu u l-ogħla għadd ta' fajls simultanji. Minn hawn jirriżulta l-bżonn: upload_max_filesize ikopri l-akbar fajl individwali, post_max_size is-somma tal-fajls kollha ta' talba flimkien ma' ftit riżerva għall-oqsma tal-formola.
Jekk il-bżonn jaqbeż 32M, ma jaqbilx mar-rakkomandazzjoni tranżitorja ta' php.net. Allura dan huwa raġuni oħra biex l-aġġornament jitressaq. Uploads kbar jistgħu jiġu pproċessati wkoll permezz ta' subdomain proprju b'pool proprju, biex il-websajt l-oħra żżomm limiti stretti.
Wara l-aġġornament għal 8.5.12, 8.4.27, 8.3.36, 8.2.35 jew backport ikkonfermat tista' terġa' tistabbilixxi l-valuri skont il-bżonn reali. Imma m'għandhomx ikunu aktar ġenerużi milli meħtieġ: kull limitu li jaqbeż il-bżonn jikber is-superfiċje ta' attakk mingħajr benefiċċju. Jekk websajt ma teħtieġ l-ebda upload, file_uploads = Off hija l-aktar soluzzjoni nadifa.
Interpreta sew l-iżbalji
Meta l-uploads jonqsu, l-imġiba tiżvela liema limitu qed jaħdem. Paġna b'żball 413 toriġina mis-server tal-web. Formola li terġa' tgħabbi mingħajr messaġġ jew tirrapporta „talba invalida” tindika data $_POST vojta, jiġifieri post_max_size. Messaġġ tal-applikazzjoni dwar fajl individwali jaqbel ma' upload_max_filesize. U oqsma neqsin f'formoli kbar ħafna, pereżempju b'varjanti ta' prodotti, jindikaw max_input_vars. Il-log tal-iżbalji ta' PHP fih, meta post_max_size jinqabeż, ġeneralment twissija bid-daqs tat-talba.
Biex l-utenti ma jibqgħux imħawdin, l-applikazzjoni għandha tagħraf il-każ. Il-manwal ta' PHP jissuġġerixxi triq sempliċi: il-formola tgħaddi marker fl-indirizz, pereżempju ?processed=1. Jekk dan il-marker jaslu, imma $_POST u $_FILES huma vojta, it-talba kienet kbira żżejjed, u l-applikazzjoni tista' turi messaġġ li jinftiehem bid-daqs permess.
Kif tgħin PHP SOS b'mod konkret?
- Niġbru t-toroq kollha tal-upload tal-websajts tiegħek u niddeterminaw id-daqsijiet verament meħtieġa.
- Nissettjaw il-limiti tas-server tal-web, ta' PHP u tal-pools b'mod konsistenti u mblukkati kontra sostituzzjoni, inklużi l-valuri tranżitorji ta' php.net.
- Nittestjaw formoli, importazzjonijiet u uploads wara l-bidla u nadattaw il-valuri b'mod immirat.
- Bħala parti mit-Tisħiħ tas-server nirritornaw il-valuri wara l-aġġornament għall-bżonn permanenti.
Mistoqsijiet frekwenti
X'inhi d-differenza bejn post_max_size u upload_max_filesize?
upload_max_filesize jillimita d-daqs ta' fajl wieħed mgħobbi. post_max_size jillimita d-data totali ta' talba POST, jiġifieri l-fajls kollha u l-oqsma tal-formola flimkien. Skont il-manwal ta' PHP, post_max_size għalhekk irid ikun akbar minn upload_max_filesize.
X'jiġri jekk talba tkun akbar minn post_max_size?
Skont il-manwal ta' PHP, allura $_POST u $_FILES ikunu vojta. L-applikazzjoni mhix tirċievi l-ebda data tal-formola u spiss turi biss messaġġ ta' żball mhux ċar jew terġa' tgħabbi l-formola. Dan jagħmel dan l-iżball diffiċli biex jinstab.
Liema valuri jirrakkomanda php.net minħabba PHP2Shell?
Bħala miżura tranżitorja sal-aġġornament: post_max_size = 8M għal applikazzjonijiet mingħajr uploads ta' fajls, 32M għal applikazzjonijiet b'uploads, u upload_max_filesize taħtu. Skont php.net din mhijiex protezzjoni sħiħa; biss l-aġġornament għal verżjoni rranġata ta' PHP jagħlaq il-vulnerabbiltajiet.
Nista' nibdel post_max_size b'ini_set() fil-kodiċi?
Le. Skont il-manwal ta' PHP, post_max_size jista' jinbidel biss fil-livell tad-direttorju, pereżempju fil-php.ini, fil-pool FPM, f'.user.ini jew f'.htaccess ma' mod_php. Min irid jimponi l-valur jissettjah b'php_admin_value, allura anke .user.ini ma tistax tegħlbu.