Comment restreindre l'accès à la web-application à une machine?
J'ai besoin de vous assurer que tous les utilisateurs à accéder à mon application web peut le faire à partir d'une machine seule, donc 100 utilisateurs signifierait 100 machines. Quelle serait la meilleure solution? La détection et le stockage de la propriété intellectuelle au cours de la première connexion bonne idée? Je pense que l'IP peut changer, même pendant la durée de vie de la session, est-ce que le droit? Je pensais aussi de stocker des cookies lorsque l'utilisateur connecte pour la première fois. Ensuite, l'attribution de ces cookies de l'utilisateur, même comme je le fais avec mot de passe et nom d'utilisateur déjà, et à chaque fois, lors de l'accès à l'application de vérifier la présence de ce cookie.
S'il vous plaît laissez-moi savoir ce que à votre avis la meilleure solution serait d'. Mon backend php/mysql si ce qui compte.
EDIT: j'ai besoin de préciser... C'est en plus de la gestion de session. J'ai besoin de restreindre les utilisateurs à être en mesure de vous connecter à l'application web à partir d'une machine spécifique. Donc, si l'utilisateur à l'origine connectés à partir de son ordinateur au travail et je stocke ses ip/cookie/etc., ensuite, le client se connecte (ou même pas), rentre à la maison et tente de connexion ne sera pas en mesure de le faire. Je suis d'accord son horrible idée, mais le client insiste 🙂
L'IP n'est pas une bonne solution, plusieurs ordinateurs peuvent être derrière un routeur, alors qu'ils avaient tous la même IP pour accéder à votre site.
Pourquoi voulez-vous construire dans cette restriction? J'utilise plusieurs machines de visiter plusieurs sites, je serais vraiment offensé si vous n'avez pas me permettre de visiter votre site à partir d'autres ordinateurs aussi. Peut-être un lien: la Création d'un web PHP app pour permettre aux utilisateurs de voter sur des propositions - Comment puis-je réduire les abus?
Korpel: je me souviens d'avoir à traiter avec les utilisateurs de l'édition de la même page, mais à partir de deux fenêtres de navigateur...
OriginalL'auteur spirytus | 2010-07-06
Vous devez vous connecter pour publier un commentaire.
Adresse IP peut changer dans le cas de la téléphonie mobile les clients ou les clients de basculer entre les réseaux filaires et sans fil. Votre meilleur pari serait probablement fournir un générés aléatoirement UID pour chaque client lorsqu'il se connecte tout d'abord (si ce n'est pas déjà le cookie). Ensuite, vous pouvez vérifier que le même nom d'utilisateur n'est pas connecté à l'aide de deux Uides.
Le truc, c'est que vous devez assurez-vous de temps de cet UID, de sorte que si l'utilisateur passe à un autre ordinateur, ils ne sont pas verrouillés. Peut-être un changement à l'UID est d'accord, mais ils ne peuvent pas revenir à un UID qui a déjà été utilisé?
je veux faire la même chose, votre 2e point n'est pas clair pour moi, plz me dire en détail.
OriginalL'auteur Curtis
Vous pouvez vous limiter à un seul client par la délivrance par le client avec un certificat SSL créé avec le keygen élément, cela devient le navigateur afin de générer une paire de clés, en gardant la clé privée de l'agent utilisateur, puis vous recevez un SPKAC, que vous pouvez utiliser pour openssl créer un certificat, que vous pouvez ensuite envoyer à l'agent de l'utilisateur, il l'installe et il peut être utilisé pour identifier l'utilisateur dans le navigateur uniquement via HTTP+TLS à partir de là.
Autre chose, tout simplement ne fonctionnent pas à 100% - même si vous pouvez pirater des moyens qui semblent de travail (jusqu'à ce que quelque chose va mal et ça ne fonctionne pas) 🙂
OriginalL'auteur nathan
Malheureusement, une adresse IP n'est pas spécifique à la machine pour plusieurs raisons:
Au lieu de cela, créer une sorte de clé unique pour la session et suivez-le dans la combinaison avec le nom d'utilisateur. Les empêcher de se connecter si le même nom d'utilisateur est déjà dans une autre session active. (Vous aurez également besoin de rincer automatiquement ces, juste au cas où vous perdez la session de fin de l'événement.)
OriginalL'auteur GalacticCowboy
La meilleure solution est déjà intégré dans le serveur web selon celui que vous utilisez. C'est ce que l' Sessions sont pour. Dans ASP.NET/IIS, il ya généralement une 20minutes par d'expiration de la session.
Donc, si un utilisateur utilise un autre ordinateur pour accéder à votre webapplication, puis le délai d'expiration de session sera de la libération de la connexion de la machine qui est inactif.
Mise à JOUR
Vous pourriez envisager de restreindre l'utilisateur par l'Adresse MAC de leurs machines qui sont uniques.
Ils ne sont également pas assuré d'être unique. J'ai vu quelques vieilles boîtes de SOLEIL qui vous permettent de définir le MAC par commutateur DIP, de toutes les choses.
Ok, vous pouvez utiliser des contrôles ActiveX pour IE ou de développer un plugin pour les autres navigateurs comme firefox/safari/chrome qui pourraient lire les adresses MAC.
OriginalL'auteur SoftwareGeek
Si c'est une application interne qui sera utilisé uniquement à l'intérieur d'une entreprise, il pourrait être possible de définir une plage d'adresses IP, parce que les petites entreprises qui n'opèrent pas dans le monde entier aura probablement une certaine quantité d'adresses ip à partir de leur fournisseur d'accès à internet.
Vous pouvez aussi penser à utiliser des informations à partir de $_SERVER de restreindre les utilisateurs à un combnation d'un simple navigateur web (HTTP_USER_AGENT) et un seul port (REMOTE_PORT) - comme un moyen supplémentaire pour différencier les machines.
Mais toutes ces solutions sont mauvais ou pire, techniquement, il est probablement pas possible de résoudre ce problème (à moins que vous aurez des garanties de la part de votre client que toutes les machines de garder une IP statique auquel cas, il est trivial si d'autre problème).
OriginalL'auteur Richard Knop
Ne pas le faire. Beaucoup de gens auront accès à votre site web à partir de plusieurs ordinateurs, et ils vont se plaindre si vous vous bloquer.
Je pense que parfois, même si vous n'êtes pas d'accord avec ce qu'ils demandent, ce que vous avez à assumer il y a des raisons. Dans ce cas, il est indiqué que c'est une demande du Client (via une modification). La question n'est pas de savoir si elles doivent ou non, c'est la façon dont ils pouvaient le faire. De Plus, il est intéressant de penser. Il défie le concept même des applications sur le web, à certains égards (défiant la nature distribuée par la restriction des utilisateurs individuels à des machines individuelles), mais au moins pourrait être un défi intéressant
Si un client a demandé à la meilleure façon de sauter d'un pont, dois-je afficher "à l'aide de vos pieds?"
Il y a une différence entre une discussion avec un Client et un développeur relayant simplement un des souhaits du Client. Si un Client est acharnée à faire quelque chose de fou et c'est de payer le développeur à faire, pourquoi ne devrait-il pas tendre la main et demander "Comment?"
Poser des questions ici une partie de mes recherches, j'ai donc pu expliquer au client toutes les implications possibles. Comme je l'ai dit je suis d'accord son horrible idée, mais "ne fais pas ça" est très peu probable pour aider ma cause. Aussi vois pas pourquoi un client serait jamais me demander comment faire pour mieux sauter du pont.
OriginalL'auteur mcandre