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:
-
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.
-
Busca la sección que tenga
location / { ... }
o agrégala dentro del bloqueserver { ... }
. -
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”. -
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
Publicar un comentario
Dime si la información de este blog te sirvio.