Archivio 26 Febbraio 2020

Disattivare rest API elenco utenti

Ecco il codice da inserire all’interno del functions.php del vostro tema wordpress per disattivare l’accesso all’elenco degli utenti o l’accesso alle informazioni di un utente tramite la chiamata REST API di wordpress.
Questo per aumentare la sicurezza del vostro sito web.

add_filter( 'rest_endpoints', function( $endpoints ){
    if ( isset( $endpoints['/wp/v2/users'] ) ) {
        unset( $endpoints['/wp/v2/users'] );
    }
    if ( isset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] ) ) {
        unset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
    }
    return $endpoints;
});

Questo invece (SCELTA CONSIGLIATA) per disattivare le REST API agli utenti non autenticati:

add_filter( 'rest_authentication_errors', function( $result ) { 
if ( ! empty( $result ) ) { return $result; } 
if ( ! is_user_logged_in() ) { 
         return new WP_Error( 'rest_not_logged_in', 'You are not currently logged in.', array( 'status' => 401 ) ); 
} 
return $result; 
});

se invece volete disattivare completamente tutte le REST API inserire questo:

add_filter( 'rest_authentication_errors', 'wp_snippet_disable_rest_api' );
function wp_snippet_disable_rest_api( $access ) {
     return new WP_Error( 'rest_disabled', __('The WordPress REST API has been disabled.'), array( 'status' => rest_authorization_required_code()));
}