TikTok injecte lui aussi du JavaScript dans son navigateur maison
Le 22 août 2022 à 06h42
2 min
Internet
Internet
Felix Krause, qui avait déclenché une panique médiatique au sujet de l'injection de code JavaScript dans les navigateurs maison d'Instagram et Facebook, vient de lancer un site web permettant de vérifier les commandes JavaScript exécutées dans les applications iOS et Android.
Krause explique que, suite au succès de son précédent billet, qui « a généré plus d'un million d'impressions sur Twitter », en plus d'être repris « par les principaux médias du monde entier », de nombreux internautes voulaient pouvoir vérifier ce que font les autres applications.
Pour tester son nouvel outil (dont il partage le code sur GitHub), il propose de partager l'URL https://inappbrowser.com/ dans l'application à tester, afin de pouvoir cliquer sur le lien, et lire le rapport qui s'affichera dans l'application.
Il a ainsi découvert que TikTok ne disposait pas d'option permettant d'ouvrir un lien dans le navigateur par défaut, mais qu'il pouvait également modifier la page visitée, récupérer les métadonnées, ainsi que tout ce que tape l'utilisateur sur son clavier.
Interrogé par TechCrunch, un porte-parole de TikTok rétorque que « les conclusions du rapport sur TikTok sont incorrectes et trompeuses » :
« Le chercheur dit spécifiquement que le code JavaScript ne signifie pas que notre application fait quoi que ce soit de malveillant, et admet qu'ils n'a aucun moyen de savoir quel type de données notre navigateur intégré à l'application collecte. Contrairement aux affirmations de son rapport, nous ne collectons pas les entrées de frappe ou de texte via ce code, qui est uniquement utilisé pour le débogage, le dépannage et la surveillance des performances ».
L'autorité irlandaise de protection des données, dont Meta et TikTok dépendent du fait du RGPD en Europe, a précisé à TechCrunch qu'elle venait de leur demander de s'expliquer sur ces injections de code JavaScript.
Le 22 août 2022 à 06h42
Commentaires (15)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 22/08/2022 à 10h29
Il y a vraiment des gens encore surpris par ce genre de pratique ?
Le 22/08/2022 à 10h32
Ce serait bien de préciser ce qu’est un navigateur maison pour ceux qui ne vont jamais sur les réseaux sociaux.
On peut naviguer sur internet depuis l’application facebook pour ios ou Android, c’est ça ?
Le 22/08/2022 à 10h35
Je pense qu’il s’agit d’un navigateur embarqué qui affiche le contenu d’un lien vers une page web. Au lieu d’ouvrir ton navigateur par défaut, le page s’ouvre dans l’appli, pour ne pas avoir à sortir du contexte.
Le 22/08/2022 à 11h16
Pour avoir testé l’appli mobile Tiktok à titre personnel, Tiktok s’ouvre directement sur le flux de vidéos à scroller et lorsqu’on consulte le profil d’une personne, l’appli permet de visiter des liens web : son profil instagram ou autres via un navigateur interne à l’appli. Dès lors, on se connecte à Instagram via Tiktok et on est comme immergé dans les 2 plateformes sans interruption.
On imagine facilement que Tiktok a accès à des informations du profil Instagram. Pour moi, Tiktok est ce qui se fait de mieux (de pire) en terme de vampirisme de données personnelles et d’addiction (toutes les plateformes imitent Tiktok en ce moment, encore mieux que les stories Insta).
Le 22/08/2022 à 16h23
Un navigateur qui reste à la maison ?
Le 22/08/2022 à 12h17
“La vie de ma mère c’est vrai.”, signé: TikTok.
Le 22/08/2022 à 12h24
C’est bon, ils ont dit qu’ils étaient cleans
Le 22/08/2022 à 14h15
Je ne vois pas trop le scandale du js du coup. Si ton utilisateur est captif (volontaire ou pas) de ton fork de navigateur pourquoi s’emer avec un js ? Tu captures déjà tout ce que tu veux dans le navigateur “maison”
Le 22/08/2022 à 14h50
La beauté du js c’est que tiktok peut changer le js à n’importe quel moment et pour n’importe quel utilisateur qu’il trouve digne d’intérêt.
Pour des raisons de debug, bien sur.
Le 22/08/2022 à 16h26
Tenez, à propos de Javascript dans cette page, c’est quoi ça ?
Par exemple “2fede8a5af4649b” c’est quoi ? Un identifiant unique ? Un numéro de version ?
Le 23/08/2022 à 09h50
Comme précédemment, c’est probablement un hash du contenu exact de la librairie, histoire d’être certain qu’on charge la bonne version. Ce serait con que le site déconne parce qu’il a reçu la mauvaise version de polyfill.js (qui, en plus, je suppose, dépend de l’identité du navigateur, il y a des chances qu’ily y ait plus de features manquantes à émuler sur un NCSA mosaic que sur un Chrome 104 )
Le 22/08/2022 à 17h32
C’est le mot de passe de ton compte NXI en base64.
Plus sérieusement, j’ai les même chez moi, c’est peut-être un bout du sha1 du git commit, ca permet de les versionner.
Le 23/08/2022 à 05h17
Ca ressemble plutôt au cache busting des serveurs web/CDN pour mettre en cache les ressources statiques.
Le 24/08/2022 à 08h24
C’est du cache busting. Ce sont des fichiers js qui contiennent toute l’appli web “compilée”. Donc à chaque fois que l’appli web est mise à jour, de nouveaux fichiers sont générés. Sauf que si le nom ne changeait pas, le browser ne récupérerait pas la nouvelle version mais utiliserait celle qu’il a déjà en cache.
Du coup à chaque fois que le js d’un site est mis à jour, il est courant de générer des fichiers avec un nouveau nom (avec un identifiant aléatoire, ou un hash ou …), et de modifier le HTML pour pointer vers ce nouveau nom afin de forcer le navigateur à récupérer la nouvelle version.
C’est particulièrement important pour éviter les erreurs de désynchro de version entre le js et les APIs serveur qu’il interroge qui feraient inévitablement planter l’appli/le site.
Le 24/08/2022 à 08h25
Non, les polyfills sont les mêmes pour tout le monde :) Je te rassure on peut faire des “if” en JS pour supporter plusieurs navigateurs