Recherche de site Web

Comment vérifier la force du mot de passe dans MySQL


« Les mots de passe sont la forme la plus basique d'authentification largement adoptée par un grand nombre d'applications et de services. Il est donc essentiel de garantir que les mots de passe utilisés par vos utilisateurs sont solides et sécurisés. »

Ainsi, une exigence est de tester la force du mot de passe avant de le hacher et de le stocker dans la base de données. Cela est dû au fait que MySQL stocke les mots de passe sous forme de hachages unidirectionnels, c'est-à-dire qu'une fois qu'un mot de passe est haché, il est impossible de le reverser.

Heureusement, MySQL nous fournit un plugin qui nous permet de vérifier la force des mots de passe avant de les hacher. Bien que ce plugin soit adapté aux petits cas d'utilisation et aux tests, il n'est pas très applicable aux applications à grande échelle. Il est préférable de mettre en œuvre la vérification des mots de passe côté client avant de les envoyer à la base de données.

Rejoignez-nous dans ce voyage alors que nous explorons le processus de mise en place et de configuration de vérifications simples de la force des mots de passe dans MySQL.

Plugin de mot de passe valide MySQL

Comme vous l'avez deviné, le plugin validate_password implémente la vérification de la force des mots de passe dans MySQL. Ce plugin est supporté dans la version 5.7 de MySQL.

Avant de l'utiliser, il est recommandé de s'assurer que le plugin est installé et activé.

Activer le plugin de validation MySQL

Pour activer le plugin validate_password, modifiez le fichier de configuration MySQL et ajoutez l'entrée montrée ci-dessous dans la section [mysqld].

[mysqld]
plugin-load-add=validate_password.so

Enregistrez la configuration et rechargez le serveur.

Vous pouvez également inclure le plugin pendant l'exécution en utilisant la commande INSTALL.

INSTALL PLUGIN validate_password SONAME 'validate_password.so';

REMARQUE : Sous Windows, remplacez le fichier validate_password.so par validate_password.dll.

Activer le composant validate_password

Dans MySQL version 8.0 et supérieure, le validate_plugin est obsolète et nécessite d'utiliser le composant validate_password à la place.

Exécutez la commande :

INSTALL COMPONENT 'file://component_validate_password';

La sortie de la commande :

Échelle de force des mots de passe MySQL

Le tableau suivant montre la longueur des mots de passe et la force attribuée dans MySQL.

LongueurForce
< 4
>= 4 et < valider_longueur_mot_de_passe25
Respecte la politique de mot de passe 150
Respecte la politique de mot de passe 275
Respecte la politique de mot de passe 3100

REMARQUE : Vous pouvez voir la valeur de la variable validate_password_length avec l'instruction :

show variables like 'validate_password_length';

Sortie :

|Variable_name           |Value|
|------------------------|-----|
|validate_password.length|8    |
|validate_password_length|8    |

Vérifier la force du mot de passe dans MySQL

Pour vérifier la force d'un mot de passe dans MySQL, utilisez la fonction VALIDATE_PASSWORD_STRENGTH(). Cette fonction prend le mot de passe (chaîne) comme paramètre et renvoie la force en fonction de l'échelle de mots de passe MySQL.

La syntaxe de l'instruction est comme suit :

SELECT VALIDATE_PASSWORD_STRENGTH(‘str’);

Par exemple :

select validate_password_strength('insto');
select validate_password_strength('IvEYDrat');
select validate_password_strength('lvnDYPW%xP28E5%vt*AOROkg');

Les déclarations ci-dessus utilisent la fonction validate_password_strength pour vérifier la force de trois types de mots de passe.

Le résultat :

|validate_password_strength('insto')|
|-----------------------------------|
|25                                 |

Deuxième :

|validate_password_strength('IvEYDrat')|
|--------------------------------------|
|50                                    |

Troisième :

|validate_password_strength('lvnDYPW%xP28E5%vt*AOROkg')|
|------------------------------------------------------|
|100                                                   |

Résiliation

Dans cet article, vous avez appris comment utiliser le plugin validate_password de MySQL pour vérifier si un mot de passe donné respecte la force de mot de passe définie.

Merci de votre lecture !