¿Decirle a nginx y/o php *no* que interpreten comandos por directorio?

¿Decirle a nginx y/o php *no* que interpreten comandos por directorio?

Estoy probando mi nuevo sitio web y lo usé weevely para generar una carga útil de PHP. Lo coloco manualmente en las imágenes directamente donde los usuarios podrán cargar imágenes en mi sitio web. Puedo establecer una conexión inversa con la carga útil de weevely en formato /images. ¿Es posible decirle a nginx y/o php?nointerpretar comandos provenientes del directorio /images? Además de codificar correctamente[1] un mecanismo de entrada seguro con validaciones de archivos, ¿hay algo más que podamos hacer para evitar que las cargas se ejecuten en directorios específicos (/images)?

[1]https://php.earth/doc/security/uploading

user www-data;
worker_processes  auto;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    charset utf-8;
    server_tokens  off;

    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Frame-Options DENY;
    add_header Referrer-Policy "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Pragma public;
    add_header Cache-Control "public";

    include /etc/nginx/conf.d/*.conf;

    gzip on;
    gzip_comp_level 2;
    gzip_min_length 1000;

    server {
    listen 127.0.0.1:80;
    server_name website.com;
    root /var/www/website/;
    index index.php index.html;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_param HTTP_PROXY "";
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
    }

    location ~* .(png|ico|gif|jpg|jpeg|css|html|txt|php)$ {
        expires 2d;
            add_header Pragma public;
        add_header Cache-Control "public";
    }

    if ($request_method !~ ^(GET|POST)$) {
         return 444;
    }
    }
}

Respuesta1

La pregunta no está clara. ¿Qué quieres decir con "interpretar comandos"? Nginx sirve archivos y solicitudes de proxy a otros servidores o servicios, como PHP. PHP ejecuta scripts.

Creo que desea que el directorio de imágenes solo sirva archivos, no ejecute scripts PHP.

Agregué mis encabezados de almacenamiento en caché. Pragma es viejo, no es necesario usarlo.

location \images
   root \whatever;
   add_header Cache-Control "public, max-age=691200, s-maxage=691200";
   more_clear_headers Server; more_clear_headers "Pragma"; more_clear_headers "Expires";
}

Alternativamente, puedes usar algo como la respuesta aesta pregunta:

location ~ /images/(.+)\.php$ {
  deny all;
}
location ~ \.php$ {
  // as above
}

información relacionada