Есть сайт на PHP, работает под nginx
В нем много PHP файлов, но входной скрипт только 1 - index.php
Но по прямой ссылке на файл можно его запустить, например если в браузере перейти /vendor/autoload.php то он попытается открыться.
Соответственно, если на сайте есть уязвимости, позволяющие загрузить PHP то можно его выполнить.
Я хочу, чтобы, если перейти на любой URL кроме index.php например отдавать 404
Переписывать сайт возможности нет
текущий конфиг:
server {
charset utf-8;
client_max_body_size 128M;
server_name site.ru;
root /home/username/www/web/site.ru;
index index.php;
access_log /home/username/www/log/site.ru.access.log;
error_log /home/username/www/log/site.ru.error.log;
listen 80;
location ~ \.(js|css|gif|png|jpg|jpeg|swf|ico|mov|fla|zip|rar|woff|woff2|ttf|eot|svg)$ {
root /home/aurich/www/web/site.ru;
}
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php/php82-fpm.sock;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
try_files $uri =404;
}
}