144 votes

Reconnaissance de l’utilisateur sans cookies ou stockage local

Je suis en train de construire un outil d'analyse et je ne peut actuellement obtenir l'adresse IP de l'utilisateur, le navigateur et le système d'exploitation de leur agent utilisateur.

Je me demandais si il est possible de détecter l'utilisateur même sans l'aide des cookies ou des locaux de stockage? Je ne suis pas attendent à des exemples de code ici, il suffit d'un simple indice de l'endroit où chercher plus loin.

J'ai oublié de mentionner qu'il aurait besoin d'être compatible avec tous les navigateurs si c'est le même ordinateur/périphérique. Fondamentalement, je suis d'appareil de reconnaissance pas vraiment l'utilisateur.

29voto

pozs Points 6034

Cette technique (pour détecter les mêmes utilisateurs sans témoins - ou même sans adresse ip) est appelé navigateur empreintes digitales. Fondamentalement, vous ramper comme des informations sur le navigateur que vous le pouvez - les meilleurs résultats peuvent être obtenus avec javascript, flash ou java (f.ex. des extensions installées, les polices, etc.). Après cela, vous pouvez stocker les résultats haché, si vous le souhaitez.

Il n'est pas infaillible, mais:

83.6% des navigateurs vu avait une empreinte unique; parmi ceux avec Flash ou Java, de 94,2%. Cela ne comprend pas les cookies!

Plus d'infos:

7voto

Justin Alexander Points 800

Les empreintes mentionnés ci-dessus fonctionne, mais il peut encore souffrir de colisions.

Consiste à ajouter des UID à l’url de chaque interaction avec l’utilisateur.

http://someplace.com/12899823/User/Profile

Où tous les liens dans le site sont adaptée avec ce modificateur. Il est similaire à la façon dont ASP.Net permettant de travailler à l’aide des données de formulaire entre les pages.

6voto

Tyler Bridger Points 126

Avez-vous regardé dans Evercookie? Il peut ou peut ne pas fonctionner dans les navigateurs. Un extrait de leur site.

« Si un utilisateur obtient cookied sur un navigateur et passe à un autre navigateur, tant ils ont encore le cookie objet Local partagé, le cookie va reproduire dans les deux navigateurs. »

4voto

hobberwickey Points 1393

Vous pouvez le faire avec un cache png, il serait peu fiables (les différents navigateurs se comporter différemment, et il va échouer si l'utilisateur efface leur mémoire cache), mais c'est une option.

1: mettre en place une Base de données qui stocke un identifiant d'utilisateur unique comme une chaîne hexadécimale

2: créer un genUser.php (ou quelle que soit la langue) fichier qui génère un id utilisateur, le stocke dans la base de données et crée ensuite une vraie couleur .png de les valeurs de la chaîne hexadécimale (chaque pixel sera 4 octets) et de retour que pour le navigateur. Assurez-vous de définir le type de contenu et les en-têtes de cache.

3: dans le HTML ou JS créez une image comme <img id='user_id' src='genUser.php' />

4: dessiner l'image d'une toile d' ctx.drawImage(document.getElementById('user_id'), 0, 0);

5: lire les octets de l'image à l'aide de ctx.getImageData, et de convertir les entiers chaîne hexadécimale.

6: C'est votre identifiant d'utilisateur unique qui est maintenant mis en cache sur votre ordinateur des utilisateurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X