Como bloquear la REST API en WordPress

como bloquear rest api en WordPress

La REST API de WordPress se ha convertido en un autentico problema de seguridad para los usuarios, cientos de miles de WordPress no actualizados a la última versión 4.7.2 están siendo hackeados, principalmente los que corren bajo las versiones 4.7 y 4.7.1, ya que es posible modificar las entradas y páginas a través de la REST API e incluso se puede llegar a modificar el php de la instalación o directamente apoderarse del WordPress vulnerable.

En esta escenario solo hay una solucion posible, actualizar a la última versión estable y segura que corrige estas vulnerabilidades, pero esto no evita que se puedan hacer peticiones a la REST API para obtener información sobre nuestra instalación de WordPress.

Una solución es bloquear todo tipo de acceso a la REST API de usuarios no identificados, porque este es el problema, que se pueden realizar peticiones sin ser un usuario identificado.

Pese a que tengas tu WordPress actualizado a la última versión, se pueden seguir haciendo peticiones y mostrar información desde cualquier navegador, simplemente puedes hacer la prueba escribiendo la url de dominio seguido de /wp-json por ejemplo www.tunombrededominio.com/wp-json como podrás comprobar se muestra mucha información sobre tu WordPress, configuraciones, etc.

Por lo tanto es interesante tomar medidas para que esta información no sea accesible a usuarios no autorizados, pero si para ti si quieres hacer uso de la REST API.

Puedes utilizar reglas en el .htaccess pero no te las recomiendo, ya que desde el .htaccess no se puede mitigar o bloquear totalmente el acceso a la REST API ya que se puede hacer un bypass utilizando los métodos POST o PUT.

NinjaFirewall para WordPress

Entonces en esta ocasión tiraremos de plugins, voy a recomendar dos en concreto, NinjaFirewall que además de hacer WAF (Web Application Firewall) permite entre sus herramienta bloquear el acceso a la REST API a usuarios no autorizados.

NinjaFirewall bloqueo REST API

No es un plugin complicado de configurar pero tiene muchas opciones, por lo que tómate tu tiempo en configurarlo y revisar todas sus opciones que son muchas.

Cuando se realiza una petición a la REST API de un usuario no autorizado se boqueará el acceso mostrando este resultado en el navegador

bloqueo Ninjafirewall REST API

El segundo plugin que os presento es Disable REST API disponible en el Repositorio oficial de WordPress

Plugin Disable REST API

Este plugin es específico para esta función, no es necesario configurar nada, simplemente lo instalamos y lo activamos, cuando se realiza una consulta a la REST API por un usuario no autorizado se mostrará este mensaje en el navegador.

Disable REST API

De esta forma ocultamos y bloqueamos cualquier tipo de acceso a la REST API de nuestro WordPress para usuarios no autorizados.

Importante, si haces la petición a la REST API estando logeado en tu WordPress, se mostrará la información porque tu eres un usuario autorizado al estar logeado, por lo que si quieres ver como funciona el bloqueo o bien te deslogeas o haces la petición desde una pestaña en navegación privada de tu navegador o incluso con otro navegador desde el que no estés logeado en tu WordPress.

NinjaFirewall (WP Edition) lo tienes disponible en el repositorio oficial de WordPress

Disable REST API igualmente lo tienes disponible en el repositorio oficial de WordPress

Importancia
Valoración de los lectores
[Total: 2 Average: 5]