Lorsque de nouveaux mots de passe sont générés pour les nouveaux utilisateurs, certains utilisateurs signalent que les mots de passe incluent des espaces au début et à la fin des mots de passe. Quelqu'un a-t-il déjà rencontré ce problème ou sait-il pourquoi cela se produirait? Quels sont les problèmes potentiels avec cela, et comment peuvent-ils être évités?
Si wp_generate_password()
a été appelé avec le troisième paramètre $extra_special_chars = true
, un espace pourrait faire partie du mot de passe:
function wp_generate_password( $length = 12, $special_chars = true, $extra_special_chars = false ) {
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
if ( $special_chars )
$chars .= '!@#$%^&*()';
if ( $extra_special_chars )
$chars .= '-_ []{}<>~`+=,.;:/?|';
$password = '';
for ( $i = 0; $i < $length; $i++ ) {
$password .= substr($chars, wp_Rand(0, strlen($chars) - 1), 1);
}
// random_password filter was previously in random_password function which was deprecated
return apply_filters('random_password', $password);
}
Il existe trois autres possibilités permettant aux espaces de trouver un moyen d'entrer des mots de passe:
Rechercher tous les plugins installés pour mot de passe . Demandez à vos utilisateurs quel client de messagerie ils utilisent. Pour éviter les espaces avant ou après WP mots de passe générés, ajoutez un filtre:
add_filter( 'random_password', 'trim' );
Notez que WordPress n'envoie pas de mot de passe avec des espaces aux utilisateurs par défaut. Il y a probablement un autre code impliqué.