martedì 22 novembre 2016

Limitare l'accesso su phpmyadmin ad un utente specifico

Una necessità che può nascere usando phpmyadmin è quella di poter limitare l'accesso ad un utente specifico alla piattaforma, in modo che solo un determinato user possa usarla.

Questa necessità può nascere nel caso si voglia pubblicare all'esterno una versione di phpmyadmin ridotta, in modo da farvi accedere solo determinati utenti con la loro username e password.
Chiamiamo questa cosa all'inglese, phpmyadmin limit access by user, se vogliamo.


Come limitare l'accesso su phpmyadmin ad un utente specifico


Per poter far accedere a phpmyadmin solo uno o più utenti autorizzati, occorre mettere mano al codice sorgente del phpmyadmin.
Si avete capito bene, purtroppo dopo estenuanti ricerche, non ho trovato alcun parametro del config di phpmyadmin che permetta di limitare l'accesso per username, quindi ho dovuto proprio modificare l'applicazione a manina.

Il file che dobbiamo andare a modificare si chiama: AuthenticationCookie.php
e si trova in un percorso come questo:
cartellaphpmyadmin\libraries\plugins\auth

Piccola precisazione: stiamo modificando il file AuthenticationCookie.php perchè l'autenticazione tramite cookie è quella di default di phpmyadmin.
Se però abbiamo cambiato metodo di login, dovremo apportare questa modifica ad uno dei seguenti file (anche loro presenti nella cartella che vi ho già indicato): AuthenticationConfig.php, AuthenticationHttp.php, AuthenticationSignon.php... a seconda del metodo scelto.

Adesso, nel nostro AuthenticationCookie.php, andiamo a cercare la funzione authSetUser() e proprio al suo inizio, incolliamoci queste righe di codice:

if (!empty($_REQUEST['pma_username']))
{
       $qualeuser=trim($_REQUEST['pma_username']);
       if($qualeuser!="username1"&&$qualeuser!="username2") die("Attenzione, utente non abilitato");
}


Limitare l'accesso su phpmyadmin ad un utente specifico

Così facendo, avremo inibito l'accesso a phpmyadmin a tutti gli utenti che non sono username1 e username2... inutile dirvi cosa fare per abilitare altri utenti alla piattaforma.

Questa è una soluzione casereccia ed un po' grezza per limitare l'accesso a phpmyadmin tramite username... ma funziona.
Volendo, smanettandoci un po', potreste anche usare le funzioni per la gestione degli errori di phpmyadmin, in modo da avere un risultato grafico migliore nel caso qualcuno provi ad accedere con un utente non abilitato.

PS è vero che ci sono altri modi per limitare l'accesso ad un phpmyadmin pubblicato all'esterno, ad esempio tramite indirizzo ip, ma non tutti hanno l'ip statico, e potrebbe essere una criticità pubblicare online uno strumento che consente a tutti di potersi loggare su qualsiasi database mysql, dato che phpmyadmin può potenzialmente essere usato per fare la login ai database di siti diversi.

PS se vuoi sapere come migliorare ulteriormente la sicurezza di phpmyadmin leggi questo post.

Piaciuto l'articolo? Lascia un commento!

EmoticonEmoticon