Désolé pour cette question sans doute saugrenue mais elle me brûle les
lèvres : quel est concrètement le risque d'avoir les mots de passe en clair
dans la table auteurs ?
Je me pose la question parce qu'on m'a fourni la liste de quelques 150
utilisateurs dans un tableau Excel avec leur mot de passe respectif pour un
autre service, et on me demande d'avoir les mêmes pour SPIP. Et plutôt que
de les ressaisir à la main (horreur !), j'aurais bien vu d'adapter les
colonnes du tableau à la structure de la table et d'importer tout ça d'un
seul coup via phpmyadmin. Sauf que du coup les mots de passe ne seraient pas
cryptés avec l'algorithme SPIP, et je ne pense pas qu'il soit possible de le
faire calculer dans Excel.
Sinon, j'imagine qu'il serait assez simple d'écrire un petit script qui lise
le mot de passe en clair dans une table et écrit dans un autre champ le pass
crypté, mais je n'ai pas la compétence pour faire ça ou adapter depuis les
fichiers SPIP.
Toutes remarques, suggestions ou coup de main bienvenus
-- Roustoubi
@ Roustoubi <roustoubi@tiscali.fr> :
Désolé pour cette question sans doute saugrenue mais elle me brûle les
lèvres : quel est concrètement le risque d'avoir les mots de passe en clair
dans la table auteurs ?
Un site sous spip contient des accès pour x auteurs ; il y en a bien un
parmi eux qui utilise sur ce site le même mot de passe que sur un autre de
ses sites, voire sur son mail, etc.
Maintenant, si un "dump" de la base de données tombe dans les pattes d'un
admin véreux, celui-ci a accès aux mots de passe de tous les abonnés du
site, et s'ouvre des portes un peu partout (et pas juste sur le site
compromis).
Je me pose la question parce qu'on m'a fourni la liste de quelques 150
utilisateurs dans un tableau Excel avec leur mot de passe respectif pour un
autre service, et on me demande d'avoir les mêmes pour SPIP. Et plutôt que
...
Sinon, j'imagine qu'il serait assez simple d'écrire un petit script qui lise
le mot de passe en clair dans une table et écrit dans un autre champ le pass
crypté, mais je n'ai pas la compétence pour faire ça ou adapter depuis les
fichiers SPIP.
Oui, c'est sans doute le mieux ; essaie avec quelque chose du style :
<?php
include ("inc_version.php3");
include_ecrire("inc.php3");
include_ecrire("inc_acces.php3");
while (.... lire les lignes du fichier.....) {
$nom = ...
$login = ....
$pass = ... // passe en clair
$htpass = generer_htpass($pass);
$mdpass = md5($pass);
spip_query("INSERT INTO spip_auteurs (nom, login, pass, htpass, alea_actuel, alea_futur) VALUES ('$nom', '$login', '$mdpass', '$htpass', 0, 0)");
}
-- Fil
Je crois que j'ai compris le principe. En fait, ce serait même plus simple
que ça : j'ai mon tableau Excel formaté selon spip_auteur tout prêt avec
toutes les infos voulues dedans, sauf le pass qui est en clair. J'importe ce
tableau dans la table spip_auteurs et dans une table spip_auteurs_xl qui
sont donc identiques. Il me suffit donc avec ce script de lire le pass en
clair de spip_auteurs_xl, de calculer le mdpass et le htpass et d'écrire ces
derniers à leur place dans spip_auteurs. Après j'efface spip_auteurs_xl et
ça devrait être bon, non ?
Par contre, je ne suis pas foutu d'écrire la boucle qui va lire
successivement les $pass de chaque ligne de spip_auteurs_xl. Sans vouloir
abuser de ta patience, si tu pouvais me mettre sur la voie ...
En tout cas, merci Fil pour ton aide
-- Roustoubi