Effettuare il login in WordPress via codice

Può capitare a volte di dover accedere all’area amministrativa di un sito WordPress senza avere a portata di mano i dati di accesso.

Questa richiesta che sembra voler dire hackerare un sito non è così infrequente come si immagina.

Basti pensare ad esempio al caso classico in cui qualcuno vi chiede di gestire il proprio sito ma non si ricorda la password e  la mail di recupero non esiste o è sbagliata. Che si fà in questo caso?

Un’altro caso molto più frequente si può avere quando qualcuno faceva gestire il proprio sito al solito nipote che “studia informatica” ma ora ha bisogno di un aiuto professionale ma non ha più i dati. Che si fà in questo caso?

Se abbiamo un accesso Ftp al sito, la soluzione è quella di inserire un piccolo snippet php all’interno del file login.php.

Quello che si può fare è in pratica di assegnare programmaticamente un utente (tra quelli presenti nel sistema) e far credere al sistema che si è effettuato il login normalmente.

Di seguito il codice da usare :

// Inserire il codice seguente nel file login.php
// Utilizzare il proprio username per avere accesso alla dashboard del sito

$username = "Admin";
$user = get_user_by('login', $username );
 
// Redirect URL //
if ( !is_wp_error( $user ) )
{
    wp_clear_auth_cookie();
    wp_set_current_user ( $user->ID );
    wp_set_auth_cookie  ( $user->ID );
 
    $redirect_to = user_admin_url();
    wp_safe_redirect( $redirect_to );
    exit();
}

Andando nella pagina login.php quindi verremo direttamente rediretti sulla Dashboard del sito.

Ovviamente per poter recuperare l’accesso completo al sito senza bisogno di codice aggiuntivo è necessario che l’utente usato per il login sia un amministratore per poter gestire e modificare i dati degli altri utenti direttamente dall’amministrazione del sito.

Vedi l’esempio su GitHub

Risorse Utili

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *