Hace unos días un cliente me preguntó si era posible únicamente permitir los métodos GET y POST en una web y deshabilitar el resto, como PUT, HEAD, etc.

Pues bien, es posible y muy sencillo de realizar, usando mod_rewrite. Para ello basta con añadir, dentro de la cadena <Virtualhost> el siguiente texto:

RewriteEngine on
RewriteCond %{REQUEST_METHOD} !^(GET|POST)
RewriteRule .* - [R=405,L]

Básicamente lo que hacemos es devolver un 405 si no se utiliza uno de los dos métodos permitidos, que en el ejemplo son GET y POST. ¿Cómo añadir más? Simplemente agregarlos al paréntesis, divididos con pipe.

Por último, y como nota, indicar que el método options no es posible deshabilitarlo con rewrite, por lo que para deshabilitarlo habría que echar mano de la configuración general de métodos, en el fichero httpd.conf (no la configuración por virtualhosts) y añadir lo siguiente:

<Location />
        Order allow,deny
        Allow from all
        <LimitExcept HEAD POST GET>
                Deny from all
        </LimitExcept>
</Location>

¡Un saludo!


0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *