Comment contourner le prochain plantage causé par le SDK de Facebook
Waze, Spotify, PUBG, Tinder, Pinterest, Le Bon Coin… Toutes ces apps ont planté durant deux heures environ aujourd'hui à cause d'un bug d'un composant Facebook qu'elles intègrent. Ce n'est pas la première fois que cela arrive ; en mai déjà ce composant avait fait planter les mêmes apps pendant quelques heures. L'épisode était passé un peu inaperçu en France, car il s'était déroulé en pleine nuit.
Ce plantage est particulièrement embarrassant pour plusieurs raisons. D'une part, il touche de nombreuses apps et les rend complètement inopérantes. D'autre part, même si vous vous tenez à l'écart de l'écosystème Facebook, vous êtes affecté. Ce n'est pas la peine d'avoir l'application Facebook installée sur votre iPhone ni de vous être connecté avec Facebook Login pour essuyer des plantages, le bug est interne aux applications tierces.
Que s'est-il passé à ces deux reprises ? C'est le dysfonctionnement d'un composant mis à disposition par Facebook (un SDK) qui a entraîné le chaos. Ce SDK est utilisé par de nombreuses applications tierces pour différentes choses : permettre aux utilisateurs de se connecter avec leur compte Facebook, avoir des statistiques d'utilisation ou bien encore insérer des publicités.
Ce SDK envoie des données vers les serveurs de Facebook et en reçoit en retour. Au lancement de l'app tierce, le SDK s'attend à recevoir un certain type de données. Le problème, c'est que, pour une raison ou une autre, quand le serveur envoie des données d'un autre type, le SDK ne sait pas les interpréter, ce qui entraîne une erreur et fait planter l'application au démarrage. Ce problème venant du serveur, Facebook a pu le corriger à distance (sans que les utilisateurs aient à mettre à jour leurs applications) et relativement rapidement.
Si d'aventure ce problème devait se produire à nouveau, n'y a-t-il rien que l'on puisse faire en attendant le correctif de Facebook ? Si. La solution la plus simple, c'est d'activer le mode avion. En coupant la connexion internet, on empêche le SDK de communiquer avec le serveur, et les applications peuvent donc se lancer sans problème. Évidemment, ce n'est pas une solution adaptée à beaucoup d'applications : il faudra vous contenter de vos playlists en local pour Spotify…
Des utilisateurs disent avoir trouvé une astuce pour Waze : killer Waze (l'éjecter de la vue multitâche) ; activer le mode avion ; lancer Waze et attendre une quinzaine de secondes ; puis désactiver le mode avion. Apparemment, Waze ne plante pas en opérant ainsi.
Il y a une autre solution qui demande plus de manipulations, mais qui est plus pérenne : bloquer les connexions de Facebook. Pour cela, il faut utiliser un pare-feu orienté protection de la vie privée. Il en existe plusieurs sur l'App Store, comme Lockdown Apps.
Après l'installation, touchez le bouton « Firewall » en haut de l'app, autorisez l'ajout d'une configuration VPN et validez cet ajout en saisissant le code de votre terminal. Lockdown apparaît comme un VPN, mais il filtre en fait toutes les requêtes en local, il n'agit pas comme un VPN classique qui fait passer la connexion par un tunnel (sauf si vous activez sa seconde fonctionnalité).
Ensuite, sélectionnez « Skip Trial » si vous ne voulez pas de l'abonnement, et le tour est joué. En bloquant les requêtes de Facebook, Lockdown empêchera les applications tierces de planter si le SDK se remet à faire des siennes.
C’est une honte que Facebook soit au centre de tant d’applications !
"Ce SDK envoie des données vers les serveurs de Facebook et en reçoit en retour."
donc si j'utilise Waze, je donne des infos à google ET à facebook ?
si c pas miraculeux...
@raoolito
🤗 donnez-moi vos datas
@raoolito
Je pense que si tu n’utilise pas le « Login withFacebook », les donnes se limite à des données purement fonctionnel comme sur n’importe quel autres contact avec un serveurs.
Je pense qu’Apple risque de réagir un de ces quatre matins... Nous donner plus de contrôle pour éventuellement avoir la possibilité de bloquer les plugins/sdk/ping home de notre choix. Petit à petit...
@SebAshtian
Ce serait la moindre des choses en effet, après tout c'est bien eux qui ont laissé faire.
@bidibout
Il ne faut pas tout confondre. C’est pas à Apple de contrôler cela mais à la CNIL en France, pour faire respecter le RGPD. Que ce soit les sociétés qui se mettent à contrôler et imposer leurs règles est dangereux !
Dans la plupart des apps aujourd’hui vous pouvez contrôler et accepter ou non quel SDK (ou type d’SDK peut vous tracké). Ou à défaut, refuser les publicités personnalisés, ce qui doit couper les SDK de collecte d’IDFA il me semble.
Comme l’ont dit certains ici, le SDK de Facebook dans Waze doit être utilisé uniquement pour le Facebook connect.
En tout cas ça m’étonnerait que Waze (propriété de Google) accepte de se faire siphonner sa donnée par Facebook. Mais bon vous donnez tout à Google, ça c’est clair ! Mais comme partout.
D’un autre côté les développeurs ne veulent pas réinventer la roue à chaque fois et utilisent différents frameworks. Mais c’est rageant de voir qu’une appli qui n’a rien à voir avec FB contient pourtant des bouts de code lui envoyant des données.
Merci pour les astuces, à garder sous le coude
@jb18v
Il ne s’agit pas de réinventer la roue ici. Il s’agit de se connecter à Facebook.
Non. C'est pour ne pas avoir à redévelopper soi-même tout un framework de gestion des connexions, de statistiques d'utilisation de ton appli etc. Les développeurs utilisent le sdk Facebook pour ne pas réinventer la roue il a raison.
Lockdown est une super app ^^ je l’ai depuis longtemps et j’ai bloqué 503000 trackers 😎
@ecatomb
Aucun abonnement 😉, tout se fait en local et je n’ai plus du tout de pubs,... sur safari.
@Krysten2001
Ça ne marche qu’avec Safari et non globalement pour l’iPhone ?
Si je comprend bien. Pour que ça marche partout il,faut obligatoirement l’option (payante) VPN ?
@gwen
Non ça marche pour les deux 😉 Safari et l’iPhone. Pas besoin du VPN
@Krysten2001
Super merci. Je vais tester alors.
@iVador
Je cautionne tout à fait ton avis !
Dans le genre VPN local, j’utilise AdGuard Pro qui est très efficace et s’utilise dans Safari également.
Exact. Je n’ai pas eu le temps de tester, mais AdGuard a des filtres de confidentialité qui fonctionnent avec un VPN local, comme Lockdown. Possible que ça puisse éviter le plantage des apps utilisant le SDK Facebook.
Alors je ne sais pas si le problème est résolu mais aucune des applications ne rencontrent de problème sur mon iphone
@stephmouss
👍👍 Ceci explique cela !
pb terminé 👍👍
Question : est-ce que cette solution annule la possibilité d’utiliser d’autres VPN ?
Depuis le crash de mois de mai, j’ai viré le SDK de l’app, et l’ai remplacé par une connexion OAuth classique avec ASWebAuthenticationSession.
Le crash d’aujourd’hui m’a fait sourire 😊
@Ded77
Tu aurais un lien qui explique un peu cela ?
Merci d'avance...
@Filou53
La doc officielle d’Apple :
https://developer.apple.com/documentation/authenticationservices/aswebauthenticationsession
La doc de l’API de Facebook :
https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow?locale=fr_FR
Un snippet qui peut t’inspirer :
https://gist.github.com/ethanhuang13/70c27ea9b5eb53199bc67c3bc9d47b7b
Merci...
Je vais essayer de comprendre maintenant ;-)
Personnellement j’utilise Cybersec de NordVPN et c’est assez efficace apparement car depuis je ne peux même plus accéder à la page web de Facebook ^^ Après j’ai pas chercher à savoir si c’était vraiment Cybersec qui était en cause mais au final ça m’arrange donc je laisse comme ça.
@DrStax
Pareil et j’ai rajouté lockdown ^^
Un bon petit Pihole et c’est résolu
@nicolaspatate
Ca marche quand on est à la maison, et ça pose d'autres soucis (j'ai supprimé le mien, car je ne pouvais plus accéder à mon propre serveur Plex...). Dès que tu es sorti de la maison (Waze?) tu ne peux pas emporter ton Pihole avec toi ou je me trompe?
Dès que tu es sorti de la maison (Waze?) tu ne peux pas emporter ton Pihole avec toi ou je me trompe?
VPN ;)
Ce crash me rappel une petite histoire :
https://qz.com/646467/how-one-programmer-broke-the-internet-by-deleting-a-tiny-piece-of-code/
Je suis d’accord c’est abusé que juste a cause de fb plusieurs app ne marchent plus. J’ai cru que c’était mon iphone qui bugait 😒
Adblock, de Futurmind, est top aussi!
Il fonctionne de la même façon, et c’est redoublement efficace... je l’ai depuis un paquet d’années, avant même l’apparition des bloqueurs de contenus safari.
On trouve des packages de règles, prêtes à se faire importer dans l’app, sur github. Ça ne laisse pas passer grand chose...
Tout cela n’est pas clair. J’ai eu le problème avec Waze. Je ne me connecte pas avec un compte Facebook. Je n’ai pas Facebook installé sur le téléphone. Curieux de savoir ce que font dans ce cas les appels Waze vers Facebook ????
Un futur article comparatif de macg sur les apps qui peuvent faire office de firewall (comme little snitch sur Mac ?) serait super. Surtout si il existe des solutions sans abonnement...
Dingue quand même d'avoir un SPOF lié au SDK de FB, il doit être possible de faire de la dégradation graçieuse et ne pas utiliser la fonctionnalité "Login with FB" si le SDK renvoie une erreur (et/ou bien indiquer à ceux déjà connectés avec FB que la fonctionnalité est temporairement KO), sans pour autant pénaliser l'ensemble de l'utilisation de son application.
Je suis entièrement d’accord avec toi @Cisco !!! Surtout qu’en lisant les commentaires du précédent problème il existe d’autres solutions pour faire le login Facebook, mais elle est plus coûteuse en temps. Je le comprend un peu pour les petits développeurs, mais les gros comme cela non ! Un SPOF aussi gros !!!
Merci pour cet article et la découverte de cette application qu'est "Lockdown".
Comme je ne ‘link’ jamais mes appli à FB donc mes appli Waze et autres fonctionnent toujours. CQFD
@Alpy74CH
Ça n’a rien à voir. Qu’on utilise ou pas login with FB les apps sont affectées. Vous n’avez pas le problème car il est résolu depuis.
@Alpy74CH
Si tu avais lu l’article tu n’aurais pas écrit cette sottise et nous aurais au passage épargné de ta condescendance 🙂
Je viens d’essayer Lockdown.
Ça a l’air de bien fonctionner aussi ( j’utilise Adblock d’habitude, il est payant ).
Lockdown est gratuit...vous connaissez l’adage... ne faut il pas se méfier un peu? Savez-vous quel est leur modèle économique ?
@YetiJS93
Très bonne question 👍🏻
@YetiJS93
Tout est fait sur l’appareil c’est dit au début de l’application 😉 ils ont un service VPN payant et il me semble qu’ils ont des levés de fond où je ne sais plus quoi
Oui, je suis d’accord.
Mais ils demandent quand même une adresse mail, par exemple...
@YetiJS93
Non pas forcément
Pages