
L’espressione regolare per le password serve a controllare la forma di una password e a verificare che quella ricevuta sia abbastanza robusta da resistere agli attacchi a forza bruta dei bot.
Espressione regolare per una password solida
L’espressione regolare qui sotto verifica che una password:
-
Abbia almeno 8 caratteri. Regolalo modificando {8,}
-
Contenga almeno una lettera maiuscola. Puoi togliere questa condizione eliminando (?=.* ?[A-Z])
-
Contenga almeno una lettera minuscola. Puoi togliere questa condizione eliminando (?=.* ?[a-z])
-
Contenga almeno una cifra. Puoi togliere questa condizione eliminando (?=.* ?[0-9])
-
Contenga almeno un carattere speciale. Puoi togliere questa condizione eliminando (?=.* ?[#?!@$%^&*-])
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/Versione JavaScript
La funzione riceve la password come parametro e la confronta con l’espressione regolare. Se non trova nessuna corrispondenza la validazione fallisce e la funzione restituisce false, se la corrispondenza riesce, la password ha il formato corretto e la funzione restituisce true. Ecco la funzione JavaScript che valida la password
/**
* Valida una password
*
* Se la password non è abbastanza sicura, restituisce false
*
* @param mdp
* @return Boolean
*/
function validateMDP(mdp){
var Reg = new RegExp(/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/);
return Reg.test(mdp);
}Come usare la funzione JavaScript
Il modo migliore per usarla è dentro un’istruzione IF, come qui sotto.
if(validateMDP(mdp)){
alert("Mot de passe valide");
} else {
alert("Mot de passe invalide");
}
See the Pen
Valider un email avec une expression régulière by Damien Flandrin (@dam62500)
on CodePen.0
Versione PHP
/*
* valida password
* @param $mdp
*/
function isValidMDP($mdp)
{
return preg_match('/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/', $mdp)
}Versione HTML
Puoi fare un controllo in HTML a monte della validazione in PHP e JavaScript, tramite l’attributo pattern: ti permette di evidenziare con il CSS se la password rispetta l’espressione regolare.
<input
name="mdp"
type="text"
pattern="(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}"
/>
See the Pen
Vérifier une date avec une expression régulière en HTML by Damien Flandrin (@dam62500)
on CodePen.0
Questa validazione con regex è meglio di niente, ma quando serve un livello di sicurezza in più dovresti anche confrontare la password inserita con un elenco di password molto diffuse, per esempio:
- .IOlZPf1
- !A1o2e3r4
- ecc.


