Мой веб-сайт был взломан пользователем, который загрузил изображение с PHP-кодом. Этот код позволяет загружать файлы, и он загружает вредоносный скрипт PHP.
Он смог вызвать свой «image-php» с помощью GET по этому URL:
http://mypwnedwebsite.com/image.jpg/.php
Как я могу настроить nginx, чтобы предотвратить такое поведение? Я имею в виду, с простым /.php
, он действует так, как будто все было PHP, что, с моей точки зрения, неверно.
На самом деле у меня "классическая" конфигурация nginx 1.6.2, и я думаю, что эта часть наиболее актуальна:
location ~ \.php$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_read_timeout 120;
include /etc/nginx/fastcgi_params;
}
Это должно сработать.
location ~ \.php$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_read_timeout 120;
include /etc/nginx/fastcgi_params;
try_files $uri $uri/ /404.html;
}
Он пытается найти $ uri, если не папку, если нет, то выдается ошибка 404.