Evitar y ocultar la enumeración de usuarios en CMS WordPress
En esta entrada explico cómo podéis evitar que se vean o liste los usuarios en wordpress o user enumeration.
¿Cómo se puede ver los usuarios que hay en un wordpress?
Pues es fácil de verlo, sólo debes de añadir /wp-json/wp/v2/users al final de la url de un sitio creado con wordpress.
Por ejemplo: https://sitiowebcreadoconwordpress.com/wp-json/wp/v2/users
Esto mostrará un listado en formato json con los usuarios.
¿Cómo evitar que se liste los usuarios con REST API de wordpress?
Hay dos formas:
1. Deshabilitar la REST API de wordpress. Debes de añadir el siguiente codigo al fichero functions.php del tema de tu sitio wordpress.
function completely_disable_rest_api( $access ) {
return new WP_Error( 'rest_cannot_access', __( 'Deshabilitada la REST API', 'your-text-domain' ), array( 'status' => rest_authorization_required_code() ) );
}
add_filter( 'rest_authentication_errors', 'completely_disable_rest_api' );
2. Deshabilitar sólo la parte de mostrar los usuarios. Añadimos el siguiente código al fichero functions.phpdel tema.
function disable_rest_api_users_endpoints ( $endpoints ){
if ( isset( $endpoints['/wp/v2/users'] ) ) {
unset( $endpoints['/wp/v2/users'] );
}
if ( isset( $endpoints['/wp/v2/users/(?P[\d]+)'] ) ) {
unset( $endpoints['/wp/v2/users/(?P[\d]+)'] );
}
return $endpoints;
}
add_filter( 'rest_endpoints', 'disable_rest_api_users_endpoints' );
Deshabilitar REST API con un plugin
Si quiere tienes la opción de instalar plugins, para deshabilitar la REST API dispones en el repositorio de plugins de WordPress llamado Disable REST API. Si lo que quieres es deshabilitar sólamente los los usuarios, puedes usar este plugin SMNTCS Disable REST API User Endpoints.
Bueno. Espero que os sirva este tutorial.
Un saludo.