197 votes

Comment puis-je identifier de manière unique les ordinateurs qui visitent mon site web ?

Je dois trouver un moyen d'identifier de manière unique chaque ordinateur qui visite le site Web que je suis en train de créer. Quelqu'un a-t-il des conseils à me donner sur la manière d'y parvenir ?

Comme je veux que la solution fonctionne sur toutes les machines et tous les navigateurs (dans la limite du raisonnable), j'essaie de créer une solution utilisant le javascript.

Les cookies ne suffiront pas.

J'ai besoin de pouvoir créer un guide qui soit unique pour un ordinateur et reproductible, en supposant qu'aucun changement matériel n'ait été apporté à l'ordinateur. Les directions auxquelles je pense sont d'obtenir le MAC de la carte réseau et d'autres informations de cette nature qui identifieront la machine qui visite le site web.

4 votes

Vous ne pouvez pas obtenir le mac de leur carte réseau - l'IP ne contient pas cette information, le mieux que vous puissiez obtenir est l'adresse IP de leur passerelle ISP. Pour certains FAI, cette adresse peut être la même pour tous les utilisateurs d'une ville donnée.

1 votes

Le fait que vous ne voulez pas que l'utilisateur puisse l'usurper. La réponse est bien sûr que cela ne peut être fait sans l'installation d'un de vos composants privilégiés sur la machine de l'utilisateur.

0 votes

Les adresses MAC sont trivialement faciles à usurper. Ma minable petite connexion sans fil passera par votre MAC, substituera la sienne ou utilisera celle que vous avez spécifiée.

59voto

Jonathan Points 6934

Ces personnes ont mis au point une méthode de reconnaissance des empreintes digitales permettant de reconnaître un utilisateur avec un haut niveau de précision :

https://panopticlick.eff.org/static/browser-uniqueness.pdf

Nous étudions dans quelle mesure les navigateurs web modernes sont soumis à une "empreinte digitale" via les informations de version et de configuration qu'ils transmettent aux sites web sur demande. Nous avons avons implémenté un algorithme de prise d'empreintes possible, et avons collecté ces empreintes digitales à partir d'un large échantillon de navigateurs qui ont visité notre site de test, panopticlick.eff.org . Nous observons que la distribution de notre empreinte empreinte digitale contient au moins 18,1 bits d'entropie, ce qui signifie que si nous choisissons un navigateur au hasard, nous nous attendons au mieux à ce que seul un navigateur sur 286 777 partage son empreinte. navigateurs partageront son empreinte digitale. Parmi les navigateurs qui prennent en charge Flash ou Java, la situation est pire, car le navigateur moyen possède au moins 18,8 bits d'informations d'identification. 94,2% des navigateurs avec Flash ou Java étaient uniques dans notre échantillon.

En observant les visiteurs qui reviennent, nous estimons à quelle vitesse les empreintes digitales des navigateurs peuvent évoluer dans le temps. Dans notre échantillon, les empreintes digitales ont changé assez rapidement, mais même une simple heuristique était généralement capable de deviner quand une empreinte était une version "mise à jour" de l'empreinte d'un navigateur précédemment observé. précédemment observée, avec 99,1 % de suppositions correctes et un taux de faux positifs de seulement 0,86 %. 0.86%.

Nous discutons de la menace pour la vie privée que représente l'empreinte digitale du navigateur dans la pratique, et quelles contre-mesures peuvent être appropriées pour l'empêcher. Il existe un Il existe un compromis entre la protection contre les empreintes digitales et certaines débogage, qui, dans les navigateurs actuels, pèse lourdement sur la vie privée. Paradoxalement, les technologies de protection de la vie privée contre les empreintes digitales peuvent être autodestructrices si elles ne sont pas utilisées par les utilisateurs. s'autodétruire si elles ne sont pas utilisées par un nombre suffisant de personnes. Nous montrons que certaines mesures de confidentialité sont actuellement victimes de ce paradoxe, mais que d'autres ne le sont pas. d'autres non...

24 votes

Je suis un développeur, je suis venu ici pour chercher une solution rapide ou un petit bout de code. Ce document ne montre pas comment le mettre en œuvre. Je veux savoir comment le mettre en œuvre pour pouvoir suivre les utilisateurs uniques de mon site.

12 votes

@Oliver Vous avez raison. Cela ne vous donne pas la réponse sur un plateau. Il faut lire davantage, comprendre toutes les questions en jeu et savoir pourquoi un simple extrait de code a peu de chances de fonctionner complètement. Un développeur entreprenant pourrait écrire une bibliothèque qui ferait tout le travail difficile et permettrait aux personnes à la recherche d'une "solution rapide" d'en profiter à l'avenir.

2 votes

La réponse est aussi "link-only". Un résumé des techniques décrites dans le PDF serait apprécié au cas où le PDF ne serait plus disponible.

31voto

Joeri Sebrechts Points 7483

Une possibilité est d'utiliser cookies flash :

  • Disponibilité omniprésente (95 % des visiteurs auront probablement le flash)
  • Vous pouvez stocker plus de données par cookie (jusqu'à 100 Ko).
  • Partagé par tous les navigateurs, donc plus susceptible d'identifier une machine de manière unique.
  • La suppression des cookies du navigateur ne supprime pas les cookies flash.

Vous devrez construire un petit film flash (caché) pour les lire et les écrire.

Quelle que soit la voie que vous choisissez, assurez-vous que vos utilisateurs acceptent d'être suivis, sinon vous portez atteinte à leur vie privée et vous faites partie des méchants.

5 votes

De nombreux utilisateurs utilisent Flashblock. Le flash sera activé par l'utilisateur d'un simple clic s'il veut le voir.

3 votes

Il existe des méthodes pour supprimer les cookies, mais elles sont hors de portée de l'utilisateur moyen. Il existe des pages sur le site Web d'Adobe permettant d'afficher et de supprimer les LSO (Local Shared Object). fr.wikipedia.org/wiki/Local_Shared_Object ), mais pour les utilisateurs de Firefox, le module complémentaire Objection est la méthode la plus simple pour les supprimer.

0 votes

Je pense que c'est l'une des meilleures solutions. Youtube, Google etc. utilisent des OLS pour lutter contre les abus.

31voto

erickson Points 127945

Il n'est pas possible d'identifier les ordinateurs qui accèdent à un site web sans la coopération de leurs propriétaires. S'ils vous y autorisent, vous pouvez toutefois stocker un cookie pour identifier la machine lorsqu'elle visitera à nouveau votre site. L'essentiel est que le visiteur garde le contrôle ; il peut supprimer le cookie et apparaître comme un nouveau visiteur quand il le souhaite.

7 votes

S'il visite votre site avec 3 navigateurs différents, il aura 3 cookies différents puisque les cookies ne sont pas partagés entre les applications. De plus, s'il utilise le DHCP plutôt qu'une adresse IP statique, il est probable qu'il n'aura pas longtemps la même adresse IP pour son ordinateur.

2 votes

Oui et non. L'empreinte digitale du navigateur permet d'identifier un profil de navigateur avec un degré élevé de probabilité, mais ce n'est pas l'identification absolue de un à un recherchée dans cette question. Il est également assez simple (mais peut-être pas facile ) pour qu'un utilisateur avisé puisse les contourner délibérément s'il le souhaite.

21voto

Brian Armstrong Points 8259

Vous pouvez essayer de définir un identifiant unique dans un evercookie (cela fonctionne sur tous les navigateurs, voir leur FAQ) : http://samy.pl/evercookie/

Il existe également une société appelée ThreatMetrix qui est utilisée par de nombreuses grandes entreprises pour résoudre ce problème : http://threatmetrix.com/our-solutions/solutions-by-product/trustdefender-id/ Ils sont assez chers et certains de leurs autres produits ne sont pas très bons, mais leur dispositif d'identification fonctionne bien.

Enfin, il y a cette implémentation open source jquery de l'idée du panopticlick : https://github.com/carlo/jquery-browser-fingerprint Il a l'air assez peu développé pour l'instant, mais on pourrait le développer.

J'espère que cela vous aidera !

0 votes

+ 1 - Brian - Excellente information ! Tout cela s'est avéré très utile. Je vous remercie. N'hésitez pas à ajouter d'autres informations si vous en avez appris d'autres depuis.

1 votes

Concernant evercookie. J'ai essayé avec Opera. J'ai configuré les cookies, puis supprimé tout l'historique d'Opera, puis fermé Opera, rouvert et cliqué sur Click to rediscover cookies et voir soit null soit undefined. Cela ne fonctionne donc pas pour moi

0 votes

J'ai essayé la page d'exemple avec iOS Safari en mode privé et Desktop Chrome incognito, le cookie ne peut pas être récupéré après le redémarrage du navigateur.

12voto

cdeszaq Points 16275

Il n'y a qu'une petite quantité d'informations que vous pouvez obtenir via une connexion HTTP.

  1. IP - Mais comme d'autres l'ont dit, ce n'est pas fixe pour beaucoup, sinon la plupart des utilisateurs d'Internet en raison des politiques d'allocation dynamique de leur FAI.

  2. Useragent String - Presque tous les navigateurs envoient le type de navigateur qu'ils sont avec chaque demande. Toutefois, dans de nombreux navigateurs actuels, ce paramètre peut être défini par l'utilisateur.

  3. Collecte des champs de la demande - D'autres champs sont envoyés avec chaque demande, tels que les codages supportés, etc. Ces champs, s'ils sont utilisés dans leur ensemble, peuvent aider à identifier la machine d'un utilisateur, mais là encore, ils dépendent du navigateur et peuvent être modifiés.

  4. Cookies - La mise en place d'un cookie est un autre moyen d'identifier une machine, ou plus précisément un navigateur sur une machine, mais comme d'autres l'ont dit, ceux-ci peuvent être supprimés ou désactivés par les utilisateurs, et ne sont applicables qu'à un navigateur, pas à une machine.

La réponse correcte est donc que vous ne pouvez pas obtenir ce que vous voulez vivre uniquement par le biais des protocoles HTTP sur IP. Cependant, en utilisant une combinaison de cookies, ainsi que l'IP et les champs de la requête HTTP, vous avez de bonnes chances de deviner, en quelque sorte, de quelle machine il s'agit. Les utilisateurs ont tendance à n'utiliser qu'un seul navigateur, et souvent à partir d'une seule machine, donc cela peut être assez fiable, mais cela varie en fonction du public... les techniciens sont plus susceptibles de s'occuper de ce genre de choses, et d'utiliser plus de machines/navigateurs. En outre, cela pourrait même être couplé à une tentative de géolocalisation de l'IP, et utiliser ces données également. Mais dans tous les cas, il n'y a pas de solution qui soit correcte à tous les coups.

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