Erasoa posible da nginx konfigurazioetan, zeinetan PHP-FPM-ra birbidaltzea URLaren zatiak bereiziz "fastcgi_split_path_info" erabiliz eta PATH_INFO ingurune-aldagaia definituz, baina lehenik fitxategiaren existentzia egiaztatu gabe "try_files $fastcgi_script_name" erabiliz. zuzentaraua edo "if (!-f $) dokumentu_erroa$fastcgi_script_izena)". Arazoa ere bai
kokapena ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^ (. +? \. php) (/.*) $;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
}
Arazoaren konponbidearen jarraipena egin dezakezu banaketa-kitetan orrialde hauetan:
try_files $fastcgi_script_name =404;
Arazoa fitxategi bateko erakusleak manipulatzean errore batek sortzen du
fastcgi_split_path_info direktibak script-aren bidea zatitzea zehazten badu lerro berriekiko sentikorra den adierazpen erregular bat erabiliz (adibidez, adibide askok "^(.+?\.php)(/.*)$") erabiltzea iradokitzen du, erasotzaileak ziurta dezake balio hutsa PATH_INFO ingurune-aldagaian idazten da. Kasu honetan, exekuzioan aurrerago
Modu jakin batean formateatutako URL bat eskatuz, erasotzaileak path_info erakuslea "_fcgi_data_seg" egituraren lehen bytera aldatzea lor dezake, eta byte honetan zero bat idazteak "char* pos" mugimendua ekarriko du. aurretik kokatutako memoria-eremu batera erakuslea. FCGI_PUTENV izeneko hurrengoak memoria honetako datuak gainidatziko ditu erasotzaileak kontrola dezakeen balio batekin. Zehaztutako memoriak beste FastCGI aldagai batzuen balioak ere gordetzen ditu, eta haien datuak idatziz, erasotzaileak PHP_VALUE aldagai fikziozko bat sor dezake eta bere kodearen exekuzioa lor dezake.
Iturria: opennet.ru