API WordPress que no conocías

Si eres desarrollador seguro que para algun proyecto has usado wordpress y también estoy seguro que desconocías que por defecto WordPress tiene una API activa que desconocías y que es un problema para la seguridad de tu sitio web.

Para encontrar en enlace a esa API dentro de cualquier sitio con WordPress, solo tendrás que buscar en el código de la página por «api.w.org». De esta forma obtendrás un enlace, que normalmente no se modifica y es «*/wp-json».

Tener esto activado tiene dos problemas muy importantes de seguridad (y seguro que muchos más):

  1. Pueden hacer un scrapping muy facil de TODO tu sitio web.
  2. Suele tardar más de un segundo en responder, por lo que te pueden tirar la web con un DDoS.

Por esto, si no la utilizas, es recomendable desactivarla y si la utilizas, debes limitar su acceso.

¿Cómo desactivar esta API?

Aquí dejo dos opciones:

  1. Desactivarla para todo el mundo.
  2. Permitirla solo para usuarios administradores.

Opción 1: Desactivar API para todos.

add_filter(‘rest_authentication_errors’, ‘disable_rest_api’, 99);

function disable_rest_api($access) {
return new WP_Error(‘rest_disabled’, __(‘La REST API está desactivada en este sitio.’), array(‘status’ => 403));
}

Opción 2: Desactivar API para usuarios no administradores.

// Restringe el acceso a la Rest API solo para administradores
function restrict_rest_api_to_admins() {
// Verifica si el usuario no es administrador
if ( ! current_user_can( ‘administrator’ ) ) {
// Deshabilita el acceso a la Rest API
add_filter( ‘rest_authentication_errors’, function( $result ) {
// Devuelve un mensaje de error de autenticación
return new WP_Error( ‘rest_api_admin_only’, ‘Acceso denegado. Solo los administradores pueden acceder a la Rest API.’, array( ‘status’ => rest_authorization_required_code() ) );
});
}
}
add_action( ‘rest_api_init’, ‘restrict_rest_api_to_admins’ );

Para insertar este código puedes utilizar algún plugin como «Code Snippets» (de Code Snippets Pro) o insertarlo en el functions.php.

Si necesitas más información, puedes entrar en el siguiente artículo de webempresa: ¿Cómo desactivar Rest API en WordPress?

O También puedes obtener más información en este vídeo:

Deja una respuesta

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