Très bon article (et très bonne discussion) sur le stockage des mots de passe dans une base de données. J’espère que les mots de passe de SeenThis sont bien protégés :-)
▻http://linuxfr.org/users/elyotna/journaux/l-art-de-stocker-des-mots-de-passe
Très bon article (et très bonne discussion) sur le stockage des mots de passe dans une base de données. J’espère que les mots de passe de SeenThis sont bien protégés :-)
▻http://linuxfr.org/users/elyotna/journaux/l-art-de-stocker-des-mots-de-passe
@Fil Donc, mots de passe au régime sans sel ? Mauvais, en effet.
ah non vérification faite (▻http://core.spip.org/projects/spip/repository/entry/branches/spip-2.1/ecrire/auth/spip.php) c’est plus compliqué que ça :
1) le mot de passe est chiffré en SHA-256 avec une clé de hachage différente pour chaque utilisateur et qui change à chaque login
2) on a aussi un ’htpass’, SHA-256 avec un sel aléatoire, mais j’ai du mal à voir si cette valeur a encore la moindre utilité
J’avais 3 ans !
Mais les développeurs ne pensent pas a le moderniser un petit peu ?
@emersion : c’est quoi ton pb avec cette ligne ? tu l’a réécrirait comment ?
sql_fetsel(), sql_quote() c’est lourd. La fin est magnifique :
,’’,’’,’’,’’,$serveur) ;
On ne compte plus les arguments sur les doigts de la main (mettre $serveur en dernier est pas très malin d’ailleurs).
Et puis (oui bon je pousse un peu) je n’aime pas le mix anglais-francais ($row mais statut<>’5poubelle’).
Ce n’est pas de la POO, mais je comprends que des développeurs n’aiment pas ce concept et restent aux fonctions.
Je réécrirais un truc du genre (j’ai bien dit « du genre » !) :
$row = $server->query(’SELECT * FROM spip_authors WHERE login=:login AND password=:password’, array(’login’ => $login, ’password’ => $password));
Il y a encore sûrement plus lisible/mieux en général.
Le reste du peu de code que j’ai lu n’était pas très propre non plus.
Bon, je crois que je vais me faire des ennemis moi ! :-o
c’est parce que cela utilise l’api d’abstraction sql de spip ... qui est super puissante pour gérer plusieurs types de bdd.
Des ennemis, non, car on en a entendu de toutes sortes et de toutes les couleurs depuis 14 ans ; comme quoi on programmait mal, qu’on n’était pas fiables, etc. Au final on est toujours là avec un produit qui est pas si « crade » qu’on le dit. Même s’il ne suit aucune des modes…
En termes de sécurité, puisque c’est le sujet de départ, on n’a pas eu d’alerte « grave » depuis longtemps, et le système de connexion, atypique, n’est pas si mauvais. Alors il y a certainement mieux à faire ici ou là, et tu es tout à fait bienvenu pour apporter des améliorations :)
@maieul : SQL est un langage, donc mon code marche sur toutes les base de données supportant SQL a priori. Bon, après il y a des différences d’implémentation, mais ce n’est pas un SELECT ou un FROM qui changera. Utiliser PDO revient au même. ;-)
@fil : oh, mais c’est normal pour un code de 14 ans de ne pas suivre les dernières « modes » (ou dernières « avancées »). Je suis plutôt impressionné par ce projet qui est toujours vivant depuis si longtemps. Je jetterais un coup d’œil pour voir si je peux aider a implémenter un truc ou deux. Mais je pense qu’il y a plus utile a faire que de moderniser le code. :-P
oui, en effet, et c’est d’ailleurs pour ça qu’il a l’air crade :)
dans les projets actuels, si tu as envie de participer, il y a l’idée de décentraliser seenthis ►http://seenthis.net/messages/216935