برید د نګینکس ترتیبونو کې ممکن دی چې په کوم کې PHP-FPM ته لیږل د URL برخې جلا کولو سره د "fastcgi_split_path_info" په کارولو سره ترسره کیږي او د PATH_INFO چاپیریال متغیر تعریف کوي ، مګر پرته له دې چې لومړی د "try_files $fastcgi_script_name" په کارولو سره د فایل شتون چیک کړي. لارښود یا "که (!-f $)" جوړ کړي document_root$fastcgi_script_name)". ستونزه هم همدا ده
ځای ~ [^/]\.php(/|$) {
فاسټګی_سپلټ_پټ_فنو ^ (. +؟ \. php) (/.*) $؛
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php: 9000;
}
تاسو کولی شئ پدې پاڼو کې د توزیع کټونو کې د ستونزې حل تعقیب کړئ:
try_files $fastcgi_script_name =404;
ستونزه د یوې غلطۍ له امله رامینځته کیږي کله چې په فایل کې پوائنټرونه مینځل کیږي
که چیرې د fastcgi_split_path_info لارښود د نوي لاین-حساس منظم بیان په کارولو سره د سکریپټ لاره ویشل مشخص کړي (د مثال په توګه ، ډیری مثالونه د "^(.+؟\.php)(/*)" کارولو وړاندیز کوي) ، نو برید کونکی کولی شي ډاډ ترلاسه کړي چې یو خالي ارزښت د PATH_INFO چاپیریال متغیر ته لیکل شوی. په دې حالت کې، نور د اعدام سره
په یو مشخص ډول د یو آر ایل فارمیټ په غوښتنه کولو سره، برید کوونکی کولی شي د "_fcgi_data_seg" جوړښت لومړي بایټ ته د path_info پوینټر بدلون ترلاسه کړي، او دې بایټ ته د صفر لیکل به د "char* pos" حرکت لامل شي. د پخوانۍ حافظې ساحې ته اشاره کوي. بل چې FCGI_PUTENV نومیږي به پدې حافظه کې ډیټا د داسې ارزښت سره ولیکي چې برید کونکی یې کنټرولولی شي. ټاکل شوې حافظه د نورو FastCGI متغیرونو ارزښتونه هم ذخیره کوي ، او د دوی ډیټا لیکلو سره ، برید کونکی کولی شي جعلي PHP_VALUE متغیر رامینځته کړي او د دوی کوډ اجرا کړي.
سرچینه: opennet.ru