Précédent   Forum des professionnels en informatique > Bases de données > Décisions SGBD > Débuter
Débuter Forum d'entraide : Comment débuter en base de données ? Tutoriels SGBD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/09/2007, 11h00   #1
Invité de passage
 
Inscription : septembre 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 7
Points : 0
Points : 0
Par défaut Utilisateurs d'une appli web

Salut a tous. J'ai une question peut-être un peu bête et je ne sais pas avec tout ce qui est posté ici si elle n'a pas déjà été traitée..

Qu'est-il mieux de faire pour une appli web qui devrait pouvoir connecter simultanement environ une centaine d'utilisateurs?

Est-ce que je créé 100 utilisateurs au sein même de la base de données, la connexion par mon application se fait en fonction du login/pass entré par l'utilisateur (et les informations supplémentaires comme nom, prénom, etc... des utilisateurs se trouvent dans une table)?

Ou est-ce qu'il est mieux de créer une table personnalisée d'utilisateurs, la connexion par l'application se fait toujours avec le même utilisateur de la base et celui ci va chercher dans la table que j'ai créé si les informations entrées sont exactes ?

J'utilise la deuxième solution pour l'instant, j'ai intégré un peu de sécurité comme la conservation de l'IP pendant le temps de connexion imparti, les mots de passe stockés en MD5 dans ma table.

Peut-être les réponses peuvent-elles varier selon la base de données, pour l'instant j'utilise mysql afin de développer l'application mais ça peut changer par la suite et j'utilise PHP comme langage de développement.

Merci pour votre aide
PP_RhuM[49°] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 11h11   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 451
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 451
Points : 7 567
Points : 7 567
Tout dépend du niveau de sécurité que tu recherches...
Si tous les utilisateurs ont les mêmes privilèges, l'utilisation d'un seul USER pour la base de données est suffisante.
Si en revanche les privilèges de certains utilisateurs doivent être restreints, il vaut mieux que cette restriction soit prise en charge par la base de données plutôt que par l'application.
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 11h13   #3
Invité de passage
 
Inscription : septembre 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 7
Points : 0
Points : 0
D'ailleurs, au niveau sécurité, peut-être pouvez-vous me dire si ça suffit et me donner des conseils. Je vous explique exactemment comment celà se passe.

L'utilisateur entre son login et mot de passe..

Mon serveur apache se connecte a la base avec un utilisateur de base auquel j'ai donné les droits DML (SELECT, INSERT, UPDATE, DELETE) sur les tables de mon application
Il va chercher dans la table d'user si les identifiants entrés sont corrects.
Si c'est le cas:
  • création d'une session contenant l'identifiant de l'utilisateur.
  • Ajout dans la ligne de la table pour cet utilisateur l'IP de sa machine.
  • Ajout dans le ligne de la table pour cet utilisateur la date limite de connexion (date courante + 20 minutes).
Ensuite, pour chaque page dans laquelle l'utilisateur va aller, le serveur apache vérifie l'identifiant contenu dans la session afin de savoir de quel utilisateur il s'agit ainsi que l'IP de la machine pour la comparer avec celle qui est stockée dans la table. Il compare aussi bien entendu la date limite de connexion avec la date actuelle. Si une information ne correspond pas, fermeture de la session et mise a joue de la table (IP et date limite deviennent NULL). Sinon, il met a jour la date limite à "date courrante + 20 minutes").

Merci a vous, j'espère que vous avez tout capté
PP_RhuM[49°] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 11h14   #4
Invité de passage
 
Inscription : septembre 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 7
Points : 0
Points : 0
Okay al1_24, c'est bien le cas donc je pense que je vais rester sur ma position, on verra quand même si je reçois des avis défavorables. Merci bien du tien
PP_RhuM[49°] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 16h42   #5
Membre expérimenté
 
Inscription : mai 2005
Messages : 414
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 414
Points : 589
Points : 589
je dirai meme que si tu as vraiment 100 utilisateurs à gérer avec une réelle sécurité applicative derrière il faut gérer cela par des rôles afin de simplifier la gestion des droits des utilisateurs !

Je comprends pas l'interet de mettre la date limite de connexion dans la table, la session HTTP gère par défaut cette notion de TimeOut...
gregory.broissard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 16h59   #6
Invité de passage
 
Inscription : septembre 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 7
Points : 0
Points : 0
il n'y a que deux type d'utilisateurs au final, le premier enregistrent des produits avec toute une autre gestion un peu longue à expliquer, et les autres controlent et valident les actions des premiers, c'est vrai que je peux faire un rôle spécifique pour chaque type, ça m'en ferait deux c'est pas énorme.

Pour les dates, c'est vrai que c'est stupide d'en parler, c'est juste pour savoir quand un utilisateur est connecté depuis l'application (avec un job pour réinitialiser les infos des utilisateurs ayant dépassé leur temps limite).

Je pense pas qu'on puisse faire en sorte que si l'utilisateur ferme la fenetre du navigateur il envoie la requête de déconnexion à mon serveur apache..
PP_RhuM[49°] est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h00.


 
 
 
 
Partenaires

Hébergement Web