Bloquear la REST API en tu WordPress

Muchos sitios webs están hechos en WordPress, y si usas este CMS(ósea wordpress.org, no wordpress.com) y tienes hosting, entonces lo más probable es que tengas activada la “REST API” de WordPress.

Esto es, una serie de puntos de información, los cuales con una simple petición a tu sitio web desde un programa como el navegador o desde  la terminal, es suficiente para descargar: tus artículos, usuarios, páginas, configuraciones, etc.

Todo esto es extremadamente útil para automatizar nuestro sitio wordpress, en especial si tenemos varios sitios webs, además de para poder coger información de nuestros sitios webs, etc.

El problema es que normalmente nadie usa estas potentes características porque si tenemos un simple blog, no tiene mucha utilidad. Pero sin embargo cualquier persona o incluso un bot, puede descargar neustro sitio webs fácilmente y copiarnos.

En cualquier caso, mostraré como bloquear nuestra REST API.

Comprueba si en tu sitio web hecho con WordPress tiene la REST API abierta

Para ello, no tienes más que escribir lo siguiente en el navegador:

https://tusitioweb.com/wp-json/wp/v2/posts

Lo hago yo:

Y aparecería lo siguiente:

Lo que estás viendo es un archivo JSON, aunque podemos usar “Raw” también. Pero ahí están mis posts, puedes descargarlos todos ellos fácilmente.

Tú puedes comprobar lo mismo en tu sitio web como he mostrado.

¿Cómo bloquear la REST API?

Muy sencillo, solo instala el siguiente plugin:

Disable REST API

Una vez instalado y activado no tendrás que hacer nada más. El plugin detecta el root de tu API y la bloquea, FIN.

¿Cómo sé si ha funcionado?

Muy sencillo, escribe la misma URL que mostré anteriormente en mi ejemplo pero hazlo o bien desde tu navegador sin estar logeado en el sitio web que quieres comprobar o desde una ventana privada/incógnito del navegador, ya que si la web detecta que has iniciado sesión, si que te sigue dejando ver la información.

Si has instalado el plugin y accedes sin estar logueado en tu web, verás algo similar a esto:

Como ves, ahora tu web tiene la API REST bloqueada para visitas no autorizadas, así pues ya no podrán acceder más.

Pero es cierto que quizás, quieras dejar abiertos algunos puntos de la API, para ello, en los ajustes del plugin, puedes marcar aquellos puntos que quieras dejar abierto, como muestro en la siguiente captura, aunque en la captura solo se ven algunas de ellas, ya que es una larga lista:

 

 

¡FIN! Ya has protegido tu REST API. Y aunque el plugin te permite dejar algunos puntos abiertos, seguramente no la necesites, como digo, esto solo sirve para interactuar con programas como la terminal, Postman y cosas así, y para desarrolladores, etc.

Obviamente esto no protege de que tu sitio sea copiado, solo lo dificulta un poco, ya que hay otras maneras de copiar tu sitio web, desde la terminal o a mano, etc.

Además bloquear la REST API si no la vas a usar, es una buena medida de seguridad, ya que parte de la información que deja al público podría usarse para un ataque a nuestro sitio web, aunque si no somos muy relevantes esto es muy improbable, pero es cierto que cuando se desarrolla un sitio web a nivel profesional se reduce la superficie de exposición al mínimo posible, así pues incluso aunque se usen puntos de las REST API se usará autentificación para aquellos sensibles que se vayan a usar y se bloquearía para aquellos puntos que no vayamos a usar.

Todo esto es muy interesante pero escapa a la temática de este post y además se usarían otros plugins.

¡Saludos! 🙂



Acepto donaciones de BAT's mediante el navegador Brave 🙂



Deja un comentario

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