PHP: analisi comparativa di alcune tecniche per la creazione dei nomi utente

PHP: analisi comparativa di alcune tecniche per la creazione dei nomi utente

Un'analisi comparativa di alcune tecniche per la generazione dei nomi utente in PHP.

Premesso che per motivi di sicurezza il nome utente è un riferimento che dovrebbe essere visibile solo all'utente stesso ed agli operatori del sito (diversamente si dovrà optare per uno username pubblico e uno privato), di seguito riportiamo tre tecniche comunemente in uso.

La prima tecnica consiste nell'utilizzare il nome utente dell'indirizzo e-mail dell'utente:


function create_username($email) {
    if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
       $parts = explode('@', $email);
       return $parts[0];
    } else {
        return '';
    }
}

Questa tecnica non è molto efficace in quanto non garantisce l'univocità del nome utente ed espone l'account a rischi notevoli a livello di sicurezza.

La seconda tecnica prevede la combinazione tra le lettere del nome e cognome dell'utente e una stringa casuale con separatore:


function create_username($firstname, $lastname) {
    $str = substr(str_shuffle(uniqid()), 0, 4);
    return strtolower($firstname[0]) . strtolower($lastname[0]) . '@' . $str;
}

Questa tecnica è più sicura della precedente e meno incline a generare collisioni. Infatti pur conoscendo il nome ed il cognome dell'utente e il carattere di separazione, occorre un tempo maggiore per tentare di individuare in modo automatico un nome utente.

La terza tecnica consiste nel lasciare scegliere all'utente il suo username. Se si sceglie questa opzione, bisogna impedire che il nome utente contenga interamente o in parte altri dati presenti nel profilo utente. A livello di user experience occorre fornire dei suggerimenti utili all'utente per poter scegliere il suo username.

Torna su