lundi, mai 03, 2010

Bouton "Like" / "J'aime" et plugins sociaux: Facebook obtient le nom de chaque utilisateur visitant les pages équipées! Démo concrète

Ce billet est l'explication technique détaillée associé à son billet jumeau "Boutons "J'aime" et plugins sociaux: le deal déséquilibré proposé par Facebook aux éditeurs de sites" qui analyse les immenses avantages tirés par Facebook de l'implantation du bouton Like ("J'aime") et autres plugins sociaux sur des sites web tiers.

En quelques étapes ci-après, nous allons démontrer comment Facebook procède techniquement pour obtenir l'identité de chacun de ses membres qui visitent un site tiers équipé de ces boutons annoncés lors de la très récente conférence F8. Ces informations très personnelles sont obtenues que le bouton "J'aime" soit d'ailleurs cliqué ou non par cet utilisateur.

Les objectifs:
  • vous faire réfléchir en tant qu'utilisateur:
    • est-il juste que je reste connecté à Facebook quand je quitte le site pour aller vers un autre ? 
    • Ne devrais-je pas plutôt me déconnecter systématiquement si je veux rester discret sur mes autres activités internautes face à Facebook?
    • Dois-je ne plus fréquenter certains sites si je veux préserver ma sphère privée sans devoir me déconnecter de Facebook
  • vous faire réfléchir en tant qu'éditeur de site(s) (si c'est le cas): 
    • est-il juste et correct face à mes utilisateurs que je mette en place une mécanique qui délivre à Facebook l'intégralité de leur activité sur mon site sans les prévenir ? 
    • Dois-je justement les en prévenir ? 
    • Par ailleurs, le fait d'obtenir quelques publications sur le mur des utilisateurs ayant cliqué le bouton est-il une contrepartie équitable au fait que Facebook va pouvoir analyser nominativement l'intégralité de mes pages équipés de ce bouton ou des plugins  sociaux ?
Voilà, vous avez ci-dessus les bonnes questions à se poser et ci-dessous la démonstration pratique décrivant comment Facebook obtient toutes ces informations. A vous de juger en votre âme et conscience: il n'y pas pour un tel sujet un oui ou et un non universels. Chaque situation est différente!


Démonstration de la mécanique Facebook de traçage nominatif:
  1. ouvrez un onglet de votre navigateur à l'adresse http://www.facebook.com
  2. déconnectez vous de votre compte Facebook (si besoin) pour revenir à la page d'accueil
  3. à partir de cette page, tapez (par copier-coller) 'javascript:alert(document.cookie);' (sans mes apostrophes de marquage) C'est une commande Javascript destinée à afficher à l'écran les cookies.
  4. vous voyez donc apparaître une longue chaîne de caractère qui représentent des cookies http que Facebook installe automatiquement dans votre navigateur dès que vous visitez une page quelconque de son site pour vous retrouver (anonymement) si vous revenez selon une bonne vieille pratique des grands sites ou réseaux publicitaires vieille d'au moins 10 ans.Cliquez le bouton pour faire disparaître cette alerte.
  5. connectez-vous à votre compte Facebook avec nom d'utilisateur et mot de passe
  6. tapez à nouveau 'tapez (par copier-coller) 'javascript:alert(document.cookie);'. La chaîne de caractères est maintenant plus longue: elle contient "presence=..." suivie d'une chaîne de caractères. C'est la représentation encryptée de votre identité  Facebook.
  7. l'URL du bouton Like inclus dans une page de site tiers est du type www.facebook.com/like.php suivie de paramètres avec leur valeur (l'un d'entre eux représente l'URL de la page visitée). Allez sur  la page Like Reference page on Facebook Developper Site et jouez avec le générateur du snippet de code pour ce widget de bouton Like si vous le souhaitez afin de confirmer mes dires. Ce générateur encapsule cet appel à www.facebook.com/like.php dans une iframe qui sera ensuite posée dans la page du site tiers. 
  8. Les vertus de la "Same Origin Policy" mise en oeuvre par tous les navigateurs à jour font ensuite que les informations retournées dans le browser par l'appel à la page www.facebook.com/like.php sont inaccessibles au site qui a pourtant activée cette iframe depuis le html de sa propre page.
  9. Effectuez vous-même l'appel à cette page de bouton Like en appelant donc cette URL http://www.facebook.com/like.php depuis la barre d'adresse de votre navigateur.
  10. tapez une dernière fois 'tapez (par copier-coller) 'javascript:alert(document.cookie);' pour confirmer que les cookies présents au moment de la connexion sont toujours là en particulier "presence"
  11. pour finir, vous allez vous prouvez que Facebook vous a parfaitement identifié: faites "Voir le code source de la page" dans les options de votre navigateur pour cette page.
  12. Vous découvrez alors une chaine "user:" le long nombre qui suit est votre identité Facebook en clair. En tout aussi clair, vous allez trouver votre nom d'utilateur Facebook après la chaîne de caractères "window.presence" un peu plus loin dans le texte
  13. Ces éléments ont été préparés par Facebook pour être affichée sur la page visitée si jamais vous cliquez sur le bouton.Il est à noter que ces éléments sont inaccessibles au site ayant implanté le bouton. En clair: il livre les détails nominatifs sur une visite alos qu'il ne les possède lui-même pas.
  14. CQFD
Pour terminer, je donne un grand coup de chapeau aux ingénieurs de Facebook ayant mis ceci au point: c'est à mes yeux du grand art technologique! (Je ne regarde pas ici les implications sur la sphère privée: je répète que c'est à chacun de juger)

Si on combine ceci avec le double fait que Facebook a plus de 430 millions de membres actifs (et qui ne se déconnectent pas en très large majorité avant de changer de site..) et que quelques jours après l'annonce de ce bouton à la conférence F8, 50'000 sites l'ont déjà implanté, on peut dire que Facebook frappe ainsi et grand coup et fait bondir de manière colossale sa valeur boursière si elle gère mieux cette avancée qu'elle ne l'a fait pour Beacon.

Source: blog Media & Tech (par didier durand)

11 commentaires:

OrangeOrange a dit…

Responsabilité de la protection des données : soutenez-vous cet Appel au boycott de Facebook par VZBZ ? Question vue sur Pnyx.com : http://www.pnyx.com/fr_fr/poll/664

Nicolas Cynober a dit…

Prouesse technologique tu y vas un peu fort :) Cette technique d'ouverture d'iFrame via javascript pour écrire dans les cookies est bien connu des dévelopeurs d'application "third-party". D'ailleurs beaucoup de widget et d'embeds revandent les informations acquises via cette méthode. Sinon effectivement avec 400 millions de comptes, cela décuple l'effet !

Didier Durand a dit…

Salut Nicolas, tu connais mon penchant pour le sensationnel! ;-)

C'est effectivement le couplage aux 400 millions d'utilisateurs qui rend la mécanique une prouesse à mes yeux: le nombre de hits à la seconde doit être colossal...

a+
didier

Anonyme a dit…

je "like" ce billet qui est tres interessant !!

clorr a dit…

Hmmm, pas faux, mais Google fait pas mal non plus. Entre les pubs, les stats (avec analytics), les plans, les videos, les blogs :-).... Autant de moyens de tracker (traquer) les utilisateurs....

Je pense que Facebook est quand meme encore un cran derriere, mais ils avancent vite quand meme.

Anonyme a dit…

Bonjour,
C'est juste une mise en application des technologies du web de données (RDF...) dans un but "privatif".

Guillaume Lecanu a dit…

Bonjour,

J'ai mis à disposition un plugin gratuit pour le navigateur Mozilla Firefox permettant de bloquer ces boutons FaceBook lorsque vous naviguez sur Internet.

Le plugin peut être installé ici :
https://addons.mozilla.org/fr/firefox/addon/161984/

Le code source est libre, sous licence BSD.

Arnaud a dit…

Est-ce à dire que des données sont collectées par Facebook même quand le bouton like n'est pas cliqué ?
Même quand on navigue sur une page non équipée du widget, pourvu que la connexion à Facebook soit restée active ?

Didier Durand a dit…

Bonjour Arnaud,

Oui: il suffit de charger la page (sans même cliquer) en étant connecté (ou même en ayant été...) à Facebook pour que ce site puisse recevoir le cookie et donc donc reconstituer les infos d'identité.
cordialement
didier

Didier Durand a dit…

Sarah a ajouté un nouveau commentaire:
[Désolé Sarah, problème technique chez Google Blogger: je dois reposter votre question en votre nom]

Bonjour Didier et merci pour la démo.
J'ai une petite question supplémentaire : ce principe vaut-il pour les "badges" Facebook ?

En effet, le badge renvoie à l'url de la page FB à suivre et à http://www.facebook.com/business/dashboard/ .

si on n'est pas loggé, on tombe sur la page login de FB qui ne contient pas l'ID et le window.presence.

Le badge traque-t-il donc l'internaute sur les pages qui l'affiche ?

Didier Durand a dit…

Bonjour Sarah,

Oui, toutes les "émergences" de FB sur des sites tiers ont un même objectif: obtenir des données d'identification sur les utilisateurs qui voient ces émergences.

Dans mon autre papier lié en début de celui-ci, j'explique l'injustice de ce deal: Facebook obtient des données très personnelles qu'il ne partage ensuite même pas avec le site qui lui a permis de les obtenir.... Très fort!

didier