Page 1 sur 1

plusieurs utilisateurs et plusieurs bases

Posté : 01 oct. 2010, 19:06
par dim13
bonjour,
Étant donné que j'ai plusieurs utilisateurs qui viennent sur mon site et que chacun d'entre eux a une base de donnée qui lui est propre. La gestion de chaque utilisateur est faite avec GRANT pour qu'ils n'aient accès en écriture qu'à leur base et qu'en lecture à la base commune.
Je me suis dit que je pouvais les connecter comme ca :
$pass=$_POST['pass'];
$user=$_POST['user'];
if((empty($user))||(empty($pass))||(preg_match('/\W/',$pass))||($user=='root'))
return null;
else
return new PDO('mysql:host=127.0.0.1;dbname='.$user,$user,$pass);
C'est peut être une question bête, mais ce genre de connexion est introuvable, personne ne le fait (à par phpmyadmin).
Tous le monde fait comme ca :
1 création d'une seconde table user avec champs login, et pass en sha1
2 à la connexion, vérification du pass posté et connexion avec root.

La question qui me trotte :
Est-ce que "ma" manière de faire est aussi (plus-moins ?) sécurisée que la manière commune ?

Merci.

Re: plusieurs utilisateurs et plusieurs bases

Posté : 02 oct. 2010, 10:05
par @rthur
Bonjour,

Ce n'est à priori pas moins sécurisé (même si je pense qu'il faudrait que tu effectues ton filtrage via preg_match aussi sur $user).
Toutefois, en terme d'évolutivité c'est pas forcément le plus efficace. Si tu commences à avoir beaucoup d'utilisateurs, ça t'oblige à créer autant d'utilisateurs MySQL et de bases associées, si un membre change de mot de passe il faut changer le mot de passe de l'user MySQL, si il supprime son compte, il faut supprimer l'utilisateur et la bdd associé, etc...
Par ailleurs, si dans chaque BDD tu as la même structure, ça fait beaucoup de redondance.

C'est peut être approprié pour ton cas d'utilisation mais généralement ce n'est pas le cas et c'est pour cela qu'on utilise juste une table avec les utilisateurs et l'empreinte de leur mdp. En revanche on ne s'y connecte pas en root mais avec un utilisateur MySQL qui ne doit avoir que les droits dont il a besoin. :)

Re: plusieurs utilisateurs et plusieurs bases

Posté : 04 oct. 2010, 18:54
par dim13
En effet, certaines tables ne sont pas partagées entre les utilisateurs, et pour les autres, j'ai utilisé un utilisateur adapté.
Merci pour ces éclaircissements.