Deshabilitar los métodos HTTP peligrosos como PUT, DELETE y TRACE en Nginx

 

🔧 Paso 1: Editar el archivo de configuración de Nginx

Objetivo:

Configurar el servidor Nginx para que rechace solicitudes HTTP que usen los métodos PUT, DELETE y TRACE, devolviendo un código de estado 405 (Method Not Allowed).

¿Por qué hacerlo?

Por razones de seguridad. Algunos métodos HTTP como PUT, DELETE y TRACE pueden representar riesgos si no son utilizados correctamente. Si tu aplicación no los necesita, es recomendable deshabilitarlos.

Instrucciones:

  1. Abre el archivo de configuración de Nginx. Generalmente se encuentra en:

    /etc/nginx/nginx.conf
    

    O también puede estar dentro del directorio:

    /etc/nginx/sites-available/
    

    dependiendo de cómo esté estructurada tu instalación.

  2. Busca la sección que tenga location / { ... } o agrégala dentro del bloque server { ... }.

  3. Dentro de ese bloque, agrega las siguientes condiciones:

    location / {
        if ($request_method = PUT) {
            return 405;
        }
    
        if ($request_method = DELETE) {
            return 405;
        }
    
        if ($request_method = TRACE) {
            return 405;
        }
    }
    

    ✅ Esto le dice a Nginx: “Si una solicitud intenta usar PUT, DELETE o TRACE en la raíz /, devuélvele un 405 - Method Not Allowed”.

  4. Guarda el archivo y reinicia Nginx para aplicar los cambios:

    sudo systemctl reload nginx
    

    o

    sudo service nginx reload
    

🧪 Paso 2: Probar los métodos HTTP

Objetivo:

Verificar que los métodos PUT, DELETE y TRACE estén efectivamente bloqueados, y que el servidor responda con un HTTP 405.

¿Cómo probarlo?

Opción 1: Con curl desde la línea de comandos

Usa el comando curl para hacer solicitudes HTTP con métodos específicos. Por ejemplo:

curl -X PUT http://tu-servidor-web/
curl -X DELETE http://tu-servidor-web/
curl -X TRACE http://tu-servidor-web/

🔁 En todos los casos, deberías recibir una respuesta como esta:

HTTP/1.1 405 Not Allowed

Opción 2: Desde un navegador

Los navegadores por defecto solo envían solicitudes GET y POST, por lo que no podrás probar PUT, DELETE o TRACE directamente desde la barra de direcciones. Para estos métodos, es mejor usar curl, Postman, Insomnia u otra herramienta para enviar solicitudes HTTP personalizadas.


✅ Resultado esperado:

Si todo está correctamente configurado, el servidor rechazará las solicitudes con los métodos PUT, DELETE y TRACE, devolviendo un código 405 (Method Not Allowed). Esto ayuda a reducir vectores de ataque y a mejorar la seguridad del servidor.



Comentarios

Entradas populares de este blog

Comando FOR para archivos BAT

Guía de herramientas básicas para estudiantes: 31 apps y webs imprescindibles para ayudarte con los estudios

Configuring IPSec and ISAKMP [Cisco ASA 5500-X Series Firewalls