2010-11-08 5 views
2

J'ai développé une application web en PHP pour un client. Le client loue maintenant l'accès au système à une autre société, par utilisateur.Assurer l'accès à l'application web à partir d'un seul ordinateur par utilisateur

Existe-t-il un moyen d'empêcher l'entreprise secondaire d'utiliser un seul identifiant de connexion et de le donner à 20 personnes à utiliser en même temps? Je sais que l'on peut obtenir l'adresse IP de la machine cliente à partir de laquelle on se connecte, mais ce n'est évidemment pas une méthode très fiable. La réponse réside probablement dans une combinaison de cookies et de suivi des choses dans une base de données, mais mon cerveau est un peu coincé en pensant à la façon d'implémenter une stratégie ici.

Répondre

6

Créez un ID de session unique lorsqu'un utilisateur se connecte et le stocke dans la base de données. Ajoutez quelque chose au code d'authentification de session (exécuté sur toutes les visites de page) qui vérifie que l'ID de session de l'utilisateur est égal à celui de la BD et, dans le cas contraire, déconnectez-les. Ensuite, votre application Web sera accessible par un seul utilisateur à la fois.

Pour être tout à fait honnête, ne pouvez-vous pas soulever ce problème avec votre client?

+2

Et n'oubliez pas d'émettre un avertissement (peut-être lié au verrouillage, etc.), sinon les gens penseront que votre application est boguée :) –

+0

@battal - Définitivement. "Ne jamais surprendre l'utilisateur" devrait être l'une des 10 premières règles de développement d'applications, suivie par "Expliquer des choses surprenantes quand elles se produisent". –

2

Impossible de dire si le login est partagé entre 20 personnes. Vous pouvez restreindre l'accès en bloquant l'utilisation simultanée via les cookies de session.

Surtout, protégez-vous avec un document publié Conditions générales. Violation de qui - révoque tout contrat permanent/contrat. Et les poursuivre si vous pouvez fournir des preuves (journaux) qu'ils ont violé.

2

Assurez-vous de lier un utilisateur à une session. De cette façon, vous pouvez générer un écran d'avertissement si quelqu'un utilise le même login avec une autre session. Vous pouvez ensuite laisser l'utilisateur choisir de fermer l'autre session. De cette manière, vous pouvez vous assurer que deux utilisateurs n'utilisent pas le système en même temps. C'est un peu comme un logiciel que vous avez installé sur un ordinateur: plusieurs utilisateurs peuvent l'utiliser, mais un seul à la fois. C'est probablement bien. Si vous ne le souhaitez pas, vous devriez essayer de lier le login plus fermement à l'utilisateur: assurez-vous qu'il se connecte avec une adresse e-mail personnelle, et il reçoit des notifications (le cas échéant) par e-mail . Laissez également l'utilisateur définir des configurations personnelles. De cette façon, vous créez valeur supplémentaire pour les utilisateurs d'avoir leur propre compte.

0

Si vous avez un login, vous avez une authentification, et vous écrivez un identifiant d'utilisateur en session, assurez-vous qu'une seule session avec cet identifiant créé, si la session existe déjà lancer un message d'erreur. Le seul problème que vous aurez dans le cas et l'utilisateur ne s'est pas déconnecté correctement, au lieu d'appuyer sur le bouton x sur le navigateur, il ne sera pas en mesure de se connecter jusqu'à ce que les sessions ne sont pas expirées.

Questions connexes