<div dir="ltr">Всем добрый день<div><br></div><div>Возможно это боян и только я не знаю как так получается. Но столкнулся с интересной вещью.</div><div>Есть сайт, туда пользователи могут загружать картинки. И загружают. Но, если вместо картинки, под видом картинки, они загрузят php-код, то, казалось бы, и черт с ним. Сервер его не обработает. Но нашли ведь лаз обращаться к файлу так:</div>
<div>ff9cf78666f326226e5328cd01e82e53804d7a44.png/.php<br></div><div><br></div><div style>В location nginx прописано тоже вроде бы корректно:</div><div style><br></div><div style><div>       location ~ "^(.+\.php)($|/)" {</div>
<div>                set $script $uri;</div><div>                if ($uri ~ "^(.+\.php)($|/)") {</div><div>                        set $script $1;</div><div>                }</div><div>                if ($uri ~ "^(.+\.php)(/.+)") {</div>
<div>                        set $script $1;</div><div>                }</div><div>               fastcgi_index  index.php;</div><div>                fastcgi_split_path_info         ^(.+\.php)(.*)$;</div><div>                fastcgi_param  PATH_INFO        $fastcgi_path_info;</div>
<div>                fastcgi_pass   fpm-backend;</div><div>                include fastcgi_params;</div><div>                fastcgi_param SCRIPT_NAME $script;</div><div>                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;</div>
<div>}</div></div><div><div><br></div><div style>То есть все, что оканчивается на .php. Соблюдается. Но ведь файла нет. Я имею ввиду ".php". Почему nginx считает файлом ff9cf78666f326226e5328cd01e82e53804d7a44.png/.php, ведь тут есть обычный слэш?</div>
<div><br></div>-- <br><div>Best regards,</div>Anton Kiryushkin<br> 
</div></div>