Façons de créer une empreinte digitale utilisateur unique en PHP

Quelle est la meilleure façon de générer une "empreinte digitale" d'un utilisateur unique en PHP?

Par exemple:

  1. je pourrais utiliser l'adresse IP d'un utilisateur comme le "empreinte", cependant, il peut-être plusieurs autres utilisateurs sur la même IP
  2. je pourrais utilisez L'IP de l'utilisateur + user agent comme le "empreinte", cependant, un seul utilisateur pourrait simplement passer de safari à firefox et de nouveau être considéré comme unique

idéalement, l'empreinte "machine" plutôt que navigateur ou " ip " mais je ne vois pas comment cela est réalisable.

ouvert aux idées / suggestions sur la façon dont vous identifiez de façon unique vos utilisateurs, et quels avantages/inconvénients votre méthode A.

20
demandé sur So Over It 2010-11-03 11:29:04

5 réponses

ce site couvre à peu près tous les éléments d'information que vous pouvez utiliser pour distinguer les personnes au moyen d'un navigateur.

https://panopticlick.eff.org/

JavaScript, Java et Flash aident beaucoup.

13
répondu JAL 2010-11-03 08:39:17

la manière la plus facile et la meilleure: utilisez phps gestion des sessions - chaque client reçoit un id, stocké dans un cookie (si activé) ou donné comme une variable get sur chaque lien et forme. (vous pouvez aussi configurer un cookie vous-même). mais: cela "empreintes digitales" le navigateur - si l'utilisateur change son navigateur, supprime ses cookies ou que ce soit, vous ne pouvez pas identifier plus.

identifier chaque client par ip est généralement une mauvaise idée et ne fonctionnera pas. les clients qui utilisent le même routeur aura les mêmes ip's - les clients connectés par l'intermédiaire d'un proxy-pool pourraient avoir une autre ip à chaque chargement de page.

si vous avez besoin d'une solution qui ne peut pas être manipulée facilement par le client, essayez de faire une combinaison des suivantes, en utilisant tout ce qui est supporté par le navigateur du client et comparez - les sur chaque page-charge:

  • Cookies HTTP"normaux"
  • Objets Locaux Partagés (Les Cookies Flash)
  • stockage des cookies dans les valeurs RVB de PNGs auto-generated, force-cached utilisant HTML5 Tag Canvas pour lire les pixels (cookies) back out
  • stockage des cookies et lecture de L'historique du Web
  • stockage des cookies dans les métabalises HTTP
  • Internet Explorer UserData storage
  • HTML5 Session Storage
  • HTML5 Local Storage
  • HTML5 Global Storage
  • HTML5 database Storage via SQLite

il y a une solution evercookie qui met en œuvre l'ensemble de ce

10
répondu oezi 2010-11-03 08:39:53

atteindre une fiabilité à 100% n'est pas garanti, mais la combinaison de certaines méthodes communes peut vous donner des résultats significatifs

  • les utilisateurs ne changent généralement pas de navigateur. Sur-complication dans votre algorithme seulement pour atteindre la perfection d'ingénierie n'est pas la peine de l'effort.
  • vous appartenez certainement au top 100 des sites web si vous pouvez vous attendre à plusieurs utilisateurs de la même IP. Ne le prenez pas personnellement, mais vous n'êtes pas si populaire.

Prendre le plus simple route possible qui pourrait fonctionner et s'ajuster au fil du temps si cela semble nécessaire.

3
répondu pestaa 2010-11-03 08:39:58

il y a autre chose à prendre en compte, l'adresse IP publique d'un utilisateur est quelque chose qui peut aussi changer à chaque chargement de page.

Il y a plusieurs organisations qui changent de IP publique dans leurs routeurs pour équilibrer le trafic.

3
répondu jmserra 2011-12-12 16:27:45

j'ai trois ordinateurs différents, divers appareils de poche, et beaucoup d'entre eux ont différents navigateurs installés. J'utilise toutes ces de façon interchangeable à la maison les prendre avec moi d'autres endroits donc, essentiellement, sur diverses adresses IP. Ce que j'essaie de souligner est que les empreintes d'un navigateur ou d'une machine pour que l'affaire ne sera jamais infaillible si votre objectif est de bloquer une personne.

je vous recommande de prendre une approche différente. Juger en fonction de l'échec d'informations vous avoir disponible qui suggère l'identité de votre utilisateur banni (même IP ou même user-agent si c'est un peu commun ou bien certaines des méthodes javascript fingerprinting du navigateur telles que les polices disponibles, plugins disponibles, Taille de fenêtre non standard, etc.) et exiger de ces visiteurs suspects une forme plus élevée de vérification de l'identité-comme oauth avec Facebook, Google+, ou Twitter. Alors vous pouvez regarder pour voir si ce compte de médias sociaux est authentique ou créé juste pour contourner. Il y a aussi des APIs de vérification de téléphone dans le cas où votre base d'utilisateurs n'est pas Social-médias savvy et selon la valeur qu'il est pour vous que les utilisateurs ne contournent pas banning.

0
répondu Thoracius Appotite 2017-03-11 12:00:32