Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Deshabilitar la REST API de WordPress

La funcionalidad de REST API en WordPress permite comunicar tu sitio con otros sistemas externos, sin embargo si no usas esta funcionalidad y estas buscando mantener tu sitio seguro y optimizado tal vez debas evaluar desactivarla.

 

Generalidades

Puedes comprobar que tienes activa la REST API usando las siguientes URL en tu navegador y reemplazando tudominio.com .

Con esta url veras todas las endpoints o rutas disponibles

tudominio.com/wp-json/wp/v2/

Por ejemplo:

tudominio.com/wp-json/wp/v2/posts
tudominio.com/wp-json/wp/v2/users

 

REST API habilitada sólo para los administradores

Una de las mejores opciones es limitar el uso de esta funcionalidad sólo a los administradores del sitio, para esto podemos usar el siguiente código.

add_filter( 'rest_authentication_errors', function( $result ) {
    if ( ! empty( $result ) ) {
      return $result;
    }

    if ( ! current_user_can( 'administrator' ) ) {
      return new WP_Error( 'rest_not_admin', 'No estas autorizado.',  ['status' => 401] );
    }
    
    return $result;    
});

En el código anterior:

  • Usamos el Hoook de filtro rest_authentication_errors, que hace referencia a una función anónima con un parámetro de resultado
  • Por defecto la variable $result es NULL, es decir no se esta usando la autorización
  • Dentro de la función comprobamos si $result tiene algún valor, es decir, si no esta vacía la devolvemos, ya que es posible por ejemplo que algún otro plugin o código ya este controlando la autorización
  • Si la variable $result esta vacía entonces hacemos una comprobación de cualquier tipo, en nuestro caso comprobamos si el usuario actual tiene privilegios de administrador
  • Si no cumple esta condición entonces devolvemos un objto WP_Error

 

Puedes agregar este código como parte del archivo functions.php de tu tema hijo.

 

Conclusión

Como has podido comprobar, puedes limitar el uso de la funcionalidad de REST API en WordPress de manera simple directamente a través de código y que sólo sea accesible para usuarios administradores del sitio.

 

¿Aún con dudas?, en el siguiente video se detallan los puntos anteriores:

Suscríbete a DecodeCMS:  

 

La entrada Deshabilitar la REST API de WordPress es un artículo reciente del sitio DecodeCMS.

Enregistrer un commentaire

0 Commentaires