nginx + php-fpm

Anton Kiryushkin swood at fotofor.biz
Thu Apr 11 10:11:18 UTC 2013


Всем добрый день

Возможно это боян и только я не знаю как так получается. Но столкнулся с
интересной вещью.
Есть сайт, туда пользователи могут загружать картинки. И загружают. Но,
если вместо картинки, под видом картинки, они загрузят php-код, то,
казалось бы, и черт с ним. Сервер его не обработает. Но нашли ведь лаз
обращаться к файлу так:
ff9cf78666f326226e5328cd01e82e53804d7a44.png/.php

В location nginx прописано тоже вроде бы корректно:

       location ~ "^(.+\.php)($|/)" {
                set $script $uri;
                if ($uri ~ "^(.+\.php)($|/)") {
                        set $script $1;
                }
                if ($uri ~ "^(.+\.php)(/.+)") {
                        set $script $1;
                }
               fastcgi_index  index.php;
                fastcgi_split_path_info         ^(.+\.php)(.*)$;
                fastcgi_param  PATH_INFO        $fastcgi_path_info;
                fastcgi_pass   fpm-backend;
                include fastcgi_params;
                fastcgi_param SCRIPT_NAME $script;
                fastcgi_param  SCRIPT_FILENAME
 $document_root$fastcgi_script_name;
}

То есть все, что оканчивается на .php. Соблюдается. Но ведь файла нет. Я
имею ввиду ".php". Почему nginx считает файлом
ff9cf78666f326226e5328cd01e82e53804d7a44.png/.php, ведь тут есть обычный
слэш?

-- 
Best regards,
Anton Kiryushkin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130411/4e46cd8b/attachment-0001.html>


Подробная информация о списке рассылки nginx-ru