2016-08-02 2 views
0

Je cherche un moyen d'éviter d'utiliser un système de connexion pour un site Web sur l'intranet de mon entreprise. J'ai tenté de trouver l'adresse IP du client, l'adresse MAC ou tout autre identifiant unique. J'essaie d'éviter d'utiliser des cookies. Je sais que l'adresse IP et l'adresse MAC du client peuvent être usurpées, mais je veux quand même essayer de l'utiliser.Obtenir une adresse IP ou MAC client unique sur Intranet Meteor/Javascript

J'ai vu beaucoup d'autres messages similaires, en particulier ceux qui utilisent this.connection.clientAddress, cependant, malheureusement, je n'ai pas réussi à les faire fonctionner. Cela ne fonctionne que lorsque je l'utilise pour localhost. Au moment où je tente de l'utiliser sur le serveur, je suis incapable d'obtenir une adresse IP unique probablement à cause de tous les proxies devant le serveur. J'ai essayé d'utiliser la variable d'environnement HTTP_FORWARDED_COUNT pour deviner combien de proxies il y a et potentiellement obtenir une valeur unique, mais j'ai échoué. Quelqu'un at-il des idées sur la façon d'aborder ce problème?

modifier Informations complémentaires: Je vais d'essayer d'utiliser les informations uniques pour empêcher un utilisateur spécifique d'effectuer une action sur mon site plus d'une fois sur une période de temps déterminée (probablement 24 heures).

+0

Utilisez l'authentification (passez par votre serveur AD ou LDAP) et conservez un journal d'audit. Ce sera plus simple, plus fiable et plus utilisable que de dériver des jetons du système. – ssube

+0

J'utilise LDAP pour comparer certaines choses, mais je suis confus quant à ce que vous suggérez. Quel champ unique puis-je entrer dans LDAP pour identifier l'utilisateur? Pourriez-vous s'il vous plaît elebaorate? – scicrazed

+0

Leur nom d'utilisateur? Identifiant d'utilisateur? Votre fournisseur d'identité intranet aura déjà des identifiants uniques pour chaque principal, donc utilisez-le plutôt que d'inventer un nouveau système. – ssube

Répondre

-1

Je pense que votre meilleur pari est d'utiliser une technologie Server Sided pour gérer cela plutôt que côté client. Client Side Javascript ne vous enverra aucune information IP directement. En PHP, vous pouvez utiliser $_SERVER['REMOTE_ADDR'] Cependant, pour reciter une adresse IP, comme vous le dites, il peut être usurpé très facilement et à moins que la machine soit attribuée de manière statique, une adresse IP peut changer fréquemment et devenir peu fiable.

+0

Lorsque j'ai utilisé "this.connection.clientAddress", je l'ai placé dans le code côté serveur. Est-ce que je l'ai utilisé incorrectement? Et dans ma recherche plus tôt, j'ai trouvé une commande semblable à celle que vous avez offerte. Dans météore j'ai écrit: this.connection.remoteAddress. Malheureusement, je n'ai jamais pu obtenir de résultat sauf "indéfini" lors de l'utilisation. Quand j'ai utilisé clientAddress, cela m'a donné une adresse unique, mais seulement sur localhost. Savez-vous pourquoi cela pourrait être? Et toutes les théories comme ce que j'aurais pu faire de mal? – scicrazed

+0

Comment votre solution a-t-elle ignoré tous les proxys devant le serveur? – scicrazed

+0

Meteor est un framework côté client, quel système Server Sided utilisez-vous? PHP, ASP, Django? – Harvey