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
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:
La entrada Deshabilitar la REST API de WordPress es un artículo reciente del sitio DecodeCMS.
0 Commentaires