Developpez.com

Le Club des Développeurs et IT Pro

Un script permet de savoir si les internautes sont connectés à des services Web

Vers des problèmes de confidentialité ?

Le 2011-01-26 13:15:47, par Hinault Romaric, Responsable .NET
Un développeur Web anglais vient de trouver un moyen simple de savoir si les visiteurs de son site sont connectés à Gmail, Facebook, Twitter ou Digg.

Mike Cardwell a ainsi écrit un script JavaScript assez simple qui utilise les codes de statut retournés par de nombreux services. Ces retours diffèrent selon que l’utilisateur est connecté ou non. Conséquence, en analysant la réponse, il est possible de connaitre leur statut (connecté ou non).

Le Script fonctionne de manière assez fiable pour Twitter, Facebook et Digg.

Dans ces trois cas, Cardwel exploite le statut HTTP qui est retourné lorsque le navigateur du visiteur rencontre le lien qui se trouve dans son script. Cardwel estime que ce procédé est très efficace car il est très difficile d'éviter l’envoi des codes d’état HTTP.

Pour Gmail, Cardwel, utilise une autre méthode. Il met en ligne une photo dans un dossier public, mais uniquement consultable par les utilisateurs connectés à Gmail. Le Script essaye ensuite de voir si l'image est renvoyée (statut connecté) ou pas (déconnecté).

Ces méthodes fonctionnent sous Chrome, Safari ou Firefox.

Ces Scripts ne sont en aucun cas des exploits (ils ne permettent pas d'accéder aux services avec le compte de l'utilisateur). Mais ils posent question au moment où Firefox et Chrome tentent de trouver des parades au ciblage comportemental publicitaire. Savoir si un visiteur utilise tel ou tel service peut en effet rentrer dans ce genre d'analyse – cachée – des visiteurs.

Autre souci souligné par Mike Cardwell, étendre cette méthode permettrait de tracer un internaute, même de manière partielle, en sachant quel site il visite régulièrement (ceux pour lesquels il a choisi de se connecter automatiquement par exemple). Des plus évidents (Facebook, Gmail, etc.) aux plus « sensibles ».

Source : Blog de Cardwel

En collaboration avec Gordon Fowler
  Discussion forum
18 commentaires
  • WebPac
    Membre confirmé
    Envoyé par Hinault Romaric
    Un script permet de savoir si les internautes sont connectés à des services Web, vers des problèmes de confidentialité ?
    C'est moi où les news sur Developpez font de plus en plus racoleur pour lancer et nourrir des trolls ?
  • pmithrandir
    Expert éminent
    Envoyé par camus3
    Perso chez moi javascript est maintenant désactivé par défaut.
    Pas besoin de Js pour gmail , mais les sites qui ne proposent pas de fallback en pure html , c'est tant pis pour eux, et de plus en plus de monde fait de même.
    Plus simple que ca on pourrait avoir un niveau de confidentialité ou un site a interdiction d'ouvrir un contenu depuis un domaine différent.

    Exemple, on autorise pas www.google.fr a faire une requete HTTP(image, AJAX, etc..) sur facebook.com

    Mais on limitee l'experience utilisateur... pour prevenir juste le fait de savoir si l'utilisateur utilise ou pas des services...

    Quand on desactiver javascript, c'est revenir au web d'il y a 10 ans, et moi il ne me manque pas.
  • Paul TOTH
    Expert éminent sénior
    Envoyé par pmithrandir
    Pour le contenu embed, je pense qu'il est possible d'automatiser le ait que la zone se reserve, et que l'on nee voit ce qu'il y a dessus qu'en cliquant.

    Pour la pub, c'est effectivement un soucis.
    Mais mon idée etait de proposer le niveau de sécurité, pas de l'imposer a tous.
    tu ne fais jamais "clic droit, ouvrir dans un nouvel onglet ?" ou "copier l'URL" et coller dans un nouvel onglet ?

    ça m'embêterait de retomber sur la page de login à chaque fois.

    D'ailleurs si on désactive cela systématiquement, les boutons "J'aime" externes à FB ne fonctionneraient plus.

    maintenant il serait intéressant en effet de pouvoir dissocier des instances de navigation...aujourd'hui il faut lancer deux navigateurs différents, il pourrait être intéressant de pouvoir le faire avec un même navigateur...

    reste à savoir comment reconnaitre la session qui contient le cookie de Facebook de celle qui contient celui de gmail ...

    hum après tout on pourrait avoir des icons en bas de page avec le F de facebook le G de gmail, le Y de yahoo, etc... qu'on pourrait activer ou pas à volonter (un peu comme Firebug ou xDebugSession), quand on décoche les cookies ne sont pas envoyés, quand on coche il le sont...du coup quand je suis sur une page autre que Facebook et que je décoche le F, une requête AJAX ne serait plus que je suis connecté...un peu lourd mais ça répond à la demande

    ça devrait même pouvoir se coder comme une extension à priori.
  • si j'ai bien compris il declare une image et avec comme adresse celle d'une image qui appartient a un un compte gmail disponible quand le compte est loggé et si l'image est lu (onload) on en conclu que la personne est loggé

    c'est tout con
  • Gordon Fowler
    Expert éminent sénior
    Envoyé par Loceka
    Salut,

    Il s'agit de deux sujets bien différents (bien que sur le même sujet de la confidentialité),

    Cordialement,
  • Paul TOTH
    Expert éminent sénior
    Envoyé par Loceka
    Il s'agit du même exploit : se servir de l'historique du navigateur dans un javascript pour savoir si l'utilisateur est ou non connecté à un site.

    Après c'est sûr que c'est juste un exemple d'application du premier post mais techniquement c'est la même chose.
    je n'accède pas à l'article...mais de ce qu'il en est dit, ce n'est pas une histoire de navigation mais de réponse HTTP, le code erreur ne serait pas le même pour une personne non identifiée (401 j'imagine) et non autorisée (403) (cf Wikipedia)
  • camus3
    Membre éprouvé
    Perso chez moi javascript est maintenant désactivé par défaut.
    Pas besoin de Js pour gmail , mais les sites qui ne proposent pas de fallback en pure html , c'est tant pis pour eux, et de plus en plus de monde fait de même.
  • Neko
    Membre chevronné
    Envoyé par pmithrandir
    Plus simple que ca on pourrait avoir un niveau de confidentialité ou un site a interdiction d'ouvrir un contenu depuis un domaine différent.

    Exemple, on autorise pas www.google.fr a faire une requete HTTP(image, AJAX, etc..) sur facebook.com
    ...
    Ce serait très très embêtant, pour tout ce qui est contenu embedded ( genre videos ), pour les pubs aussi ( qui même si vous les aimez pas, font vivre une très grosse partie du web )
  • pmithrandir
    Expert éminent
    Envoyé par Neko
    Ce serait très très embêtant, pour tout ce qui est contenu embedded ( genre videos ), pour les pubs aussi ( qui même si vous les aimez pas, font vivre une très grosse partie du web )
    Pour le contenu embed, je pense qu'il est possible d'automatiser le ait que la zone se reserve, et que l'on nee voit ce qu'il y a dessus qu'en cliquant.

    Pour la pub, c'est effectivement un soucis.
    Mais mon idée etait de proposer le niveau de sécurité, pas de l'imposer a tous.
  • goomazio
    Membre chevronné
    hum après tout on pourrait avoir des icons en bas de page avec le F de facebook le G de gmail, le Y de yahoo, etc... qu'on pourrait activer ou pas à volonter [...]
    Et avec une iĉone pour bloquer tout le contenu extérieure, pour rassembler les 2 idées. Je vote pour, même sans.