TikTok injecte lui aussi du JavaScript dans son navigateur maison

TikTok injecte lui aussi du JavaScript dans son navigateur maison

TikTok injecte lui aussi du JavaScript dans son navigateur maison

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.

Commentaires (15)


Il y a vraiment des gens encore surpris par ce genre de pratique ?



les navigateurs maison d’Instagram et Facebook,




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 ?


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.


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).


Un navigateur qui reste à la maison ? :pastaper:



Le chercheur (…) admet qu’il 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.




“La vie de ma mère c’est vrai.”, signé: TikTok.


C’est bon, ils ont dit qu’ils étaient cleans :D


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”



v1nce a dit:


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”




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.


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 ?


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 :phibee: )



ungars a dit:


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 ?




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.


Ca ressemble plutôt au cache busting des serveurs web/CDN pour mettre en cache les ressources statiques.



ungars a dit:


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 ?




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.



(quote:2089794:33A20158-2813-4F0D-9D4A-FD05E2C42E48)
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 :phibee: )




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 :D


Fermer