Fermer

Modifier tous les mots de passe des mes utilisateurs WordPress

Suite à une (petite) faille de sécurité, il m’a fallu modifié les mots de passe de tous mes utilisateurs WordPress…qui sont en très grand nombre. Il était impossible de faire cette tâche à la main.

Ce fichier PHP doit se mettre à la racine de votre site WordPress et sera donc accessible via https://nom-de-domaine/votre-fichier.php.

Le script génère aléatoirement un nouveau mot de passe pour chaque utilisateur. À la fin du traitement, il affiche l’identifiant, le nom, l’email et le nouveau mot de passe de l’utilisateur. Toujours à la fin du traitement, on peut copier/coller la liste dans un tableur afin de pouvoir faire un emailing (Mailchimp, Sendinblue….) aux personnes.

<?PHP
require_once("wp-load.php");

function generatePassword() {
	// Les caractères autorisés
	$caracteres = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'y',
			"!", "$", "*", "?", ";", ":",
			1, 2, 3, 4, 5, 6, 7, 8, 9,
			'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Y'
			);

	// Longueur du mot de passe
	$nbChar = 12;

	$pwdFinal = array();
	for($i = 0; $i < $nbChar; $i++){
	    $pwdFinal[] .= $caracteres[mt_rand(0, count($caracteres) - 1)];
	}
	shuffle($pwdFinal);
	$pwdFinalShuffle = implode('', $pwdFinal);

	return $pwdFinalShuffle;
}


// Récupère la liste des utilisateurs
$tabUser = get_users();


foreach ($tabUser as $id => $user) {
	echo $user->ID;
	echo ',';
	echo $user->display_name;
	echo ',';
	echo $user->user_email;
	echo ',';
	$passWord = generatePassword();
	echo $passWord;

	// Mets à jour le mot de passe de chaque utilisateur
	$dd = wp_set_password($passWord, $user->ID);
	echo '<br>';
}

?>

Laisser une réponse

Your email address will not be published. Required fields are marked *