Bloquear request methods de HTTP

Se pueden hacer solicitudes HTTP de varias formas. Quizá las más conocidas son el GET y el POST, pero los servidores web soportan una lista más larga de opciones.

  • CONNECT: El método CONNECT establece un túnel hacia el servidor identificado por el recurso.
  • DELETE: El método DELETE borra un recurso en específico.
  • GET: El método GET solicita una representación de un recurso específico. Las peticiones que usan el método GET sólo deben recuperar datos.
  • HEAD: El método HEAD pide una respuesta idéntica a la de una petición GET, pero sin el cuerpo de la respuesta.
  • OPTIONS: El método OPTIONS es utilizado para describir las opciones de comunicación para el recurso de destino.
  • PATCH: El método PATCH es utilizado para aplicar modificaciones parciales a un recurso.
  • POST: El método POST se utiliza para enviar una entidad a un recurso en específico, causando a menudo un cambio en el estado o efectos secundarios en el servidor.
  • PUT: El modo PUT reemplaza todas las representaciones actuales del recurso de destino con la carga útil de la petición.
  • TRACE: El método TRACE realiza una prueba de bucle de retorno de mensaje a lo largo de la ruta al recurso de destino.

En el caso de WordPress en general lo más habitual es que sólo se utilicen los métodos de solicitud GET y POST, pudiendo extenderse a HEAD y OPTIONS. EL resto de métodos en general no se utilizan y se podrían bloquear.

Esto significa que en el fichero .hatccess (o en cualquier configuración de servidor web) se podrían bloquear los métodos con un par de líneas tales cual estas:

# Bloquear request method
RewriteCond %{REQUEST_METHOD} ^(connect|delete|head|options|patch|put|trace) [NC]
RewriteRule .* - [F]

Obviamente, si tienes algún sistema de API que requiera de los métodos correspondiente se pueden añadir o eliminar al gusto y a las necesidades.


Sobre este documento

Este documento está regulado por la licencia EUPL v1.2, publicado en WP SysAdmin y creado por Javier Casares. Por favor, si utilizas este contenido en tu sitio web, tu presentación o cualquier material que distribuyas, recuerda hacer una mención a este sitio o a su autor, y teniendo que poner el material que crees bajo licencia EUPL.