
La plateforme de paiement assure que les données sont collectées uniquement à des fins de prévention de la fraude
La plateforme de paiement Stripe a le vent en poupe : malgré la pandémie actuelle, elle réussit à lever 600 millions de dollars, tournée de table qui a porté sa valorisation à près de 36 milliards de dollars. Un capital qu’elle prévoit d'utiliser pour continuer à investir dans le développement de produits, la poursuite de son expansion mondiale et les initiatives stratégiques.
La société est devenue un investisseur actif dans un certain nombre de startups, dont certaines sont des partenaires stratégiques de l'entreprise alors qu'elle se déplace dans de nouveaux domaines pour compléter son activité principale de paiement en ligne.
Elle a également ajouté dans son annonce qu'elle avait actuellement 2 milliards de dollars dans son bilan, un chiffre clé qui souligne le message que l'entreprise prend cet investissement non pas pour survivre, mais pour prospérer davantage, et qu'elle pourrait bien choisir de le faire en restant une entreprise privée, car elle ne semble pas avoir besoin d'aller sur les marchés publics pour lever des fonds.
Et d’expliquer « qu’alors que l'impact économique total du COVID-19 demeure une inconnue, plusieurs années de migration offline-to-inline s’effectuent dans l’intervalle de plusieurs semaines. La perturbation actuelle souligne la nécessité d'une infrastructure fiable et facile à utiliser pour les entreprises Internet. Dans ce contexte, la mission de Stripe - accroître le PIB d'Internet - signifie fournir une rampe d'accès à l'économie numérique pour les entreprises du monde entier. Le taux de création de nouvelles entreprises sur Stripe s'est accéléré depuis le début de l'année ».
Faciliter l'intégration des paiements dans un service en ligne a longtemps été l'une des raisons pour lesquelles Stripe a connu une croissance fulgurante : elle est arrivée à un moment où d'autres solutions étaient encore trop fragmentées et compliquées, et son impact sur le commerce électronique au sens large a conduit un certain nombre de ses concurrents et d'autres nouveaux entrants à proposer des produits tout aussi simplifiés.
Mais sa facilité d'utilisation a pris une nouvelle signification ces derniers temps, avec une énorme augmentation des affaires venant en ligne des consommateurs et des entreprises qui ne peuvent plus effectuer de transactions en personne en raison de la pandémie actuelle, conduisant à une nouvelle pléthore de cas d'utilisation pour Stripe et d'autres sociétés de paiement.
« Les gens qui n'ont jamais rêvé d'utiliser Internet pour voir le médecin ou acheter des produits d'épicerie le font maintenant par nécessité. Et les entreprises qui ont différé leur migration vers le monde connecté où elles n'avaient aucune raison d’opérer ont fait le saut pratiquement du jour au lendemain », a déclaré John Collison, président et co-fondateur de Stripe, dans un communiqué. « Nous pensons que ce n'est pas le moment de reculer, mais d'investir encore plus dans la plateforme de Stripe ».
L’évènement qui arrive comme un cheveu sur la soupe ?
Selon un développeur, Stripe enregistre silencieusement vos activités sur les sites Web de ses clients :
« Lorsque j'avais besoin d'une fonctionnalité d'abonnement payant pour ma nouvelle application Web, Stripe semblait être le choix naturel. Après l'intégration, cependant, j'ai découvert que la bibliothèque JavaScript officielle de Stripe enregistre toutes les activités de navigation sur mon site et les signale à Stripe. Ces données comprennent :
- chaque URL que l'utilisateur visite sur mon site, y compris les pages qui n'affichent jamais de formulaires de paiement Stripe
; - De la télémétrie sur la façon dont l'utilisateur déplace le curseur de sa souris lors de la navigation sur mon site
; - des identifiants uniques qui permettent à Stripe de corréler les visiteurs de mon site avec d'autres sites qui acceptent les paiements via Stripe ».
Dans un billet de blog, il s’est efforcé de donner plus de détails sur sa découverte.
Qui est affecté ?
Selon le développeur, Stripe recueille ces données sur votre site Web si l'une des conditions suivantes est vraie:
Votre modèle de page de base comprend la balise de script Stripe : <script src="https://js.stripe.com/v3">
Votre site Web est une application d'une seule page, comme celle créée avec React, Vue ou Angular, et vous utilisez Stripe pour traiter les paiements.
Comment le développeur l’a-t-il découvert ?
« J'ai découvert cela par accident en ajoutant des plans payés à mon rééquilibreur de portefeuille. Dans le cadre du développement, j'utilisais un proxy HTTP qui me permet d'inspecter le trafic HTTP depuis mon navigateur.
« Après avoir mis en œuvre avec succès le flux de paiement de mon application avec Stripe, j'ai remarqué que chaque navigation de page générait une nouvelle demande HTTP POST vers une URL Stripe:
La bibliothèque Stripe.js fait un rapport à Stripe chaque fois qu'une nouvelle page est visitée dans l'application
« C'était étrange, car aucune des pages que j'ai visitées ne contenait d'appels à la bibliothèque de Stripe. En fait, mon application ne collecte pas les informations de paiement des utilisateurs jusqu'à ce qu'ils créent un compte, mais Stripe faisait des demandes HTTP lorsque j'ai atterri sur la page d'accueil de mon application en tant que nouvel utilisateur sans cookies ni informations d'identification stockées ».
Que récolte Stripe ?
Toutes les demandes sortantes générées par Stripe ressemblaient à ceci:
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | POST /4 HTTP/1.1 Host: m.stripe.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0 Accept: */* Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Content-Type: text/plain;charset=UTF-8 Content-Length: 692 Origin: https://m.stripe.network Connection: close Referer: https://m.stripe.network/inner.html Cookie: m=e29f7c00-b748-4e5f-8625-34d14dbc1c01; m=e29f7c00-b748-4e5f-8625-34d14dbc1c01 JTdCJTIydjIlMjIlM0ExJTJDJTIyaWQlMjIlM0ElMjI4MTBiOWIxY2E3ODU5YzNlYzExYTY0NTI0NzNkMTZmYyUyMiUyQyUyMnQlMjIlM0E4JTJDJTIydGFnJTIyJTNBJTIyNC41LjIxJTIyJTJDJTIyc3JjJTIyJTNBJTIyanMlMjIlMkMlMjJhJTIyJTNBbnVsbCUyQyUyMmIlMjIlM0ElN0IlMjJhJTIyJTNBJTIyJTIyJTJDJTIyYiUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYXNzZXRyZWJhbGFuY2VyLmNvbSUyRnByaWNpbmclMjIlMkMlMjJjJTIyJTNBJTIyUG9ydGZvbGlvJTIwUmViYWxhbmNlciUyMiUyQyUyMmQlMjIlM0ElMjIxYjVhMDcxOS1jMTFjLTQwOTEtYWZiYi00NGE1MjRhMDM2ZGUlMjIlMkMlMjJlJTIyJTNBJTIyMWJhOTYwOWMtMjI0Ni00YjYwLTk1ZWUtYzg0YTRlNDhmOTkzJTIyJTJDJTIyZiUyMiUzQWZhbHNlJTJDJTIyZyUyMiUzQXRydWUlMkMlMjJoJTIyJTNBdHJ1ZSUyQyUyMmklMjIlM0ElNUIlMjJsb2NhdGlvbiUyMiU1RCUyQyUyMmolMjIlM0ElNUIlNUQlMkMlMjJuJTIyJTNBMTkzJTdEJTdE |
Code Bash : | Sélectionner tout |
1 2 3 | $ echo "JTdCJTIydjIlMjIlM0ExJTJDJTIyaWQlMjIlM0ElMjI4MTBiOWIxY2E3ODU5YzNlYzExYTY0NTI0NzNkMTZmYyUyMiUyQyUyMnQlMjIlM0E4JTJDJTIydGFnJTIyJTNBJTIyNC41LjIxJTIyJTJDJTIyc3JjJTIyJTNBJTIyanMlMjIlMkMlMjJhJTIyJTNBbnVsbCUyQyUyMmIlMjIlM0ElN0IlMjJhJTIyJTNBJTIyJTIyJTJDJTIyYiUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGYXNzZXRyZWJhbGFuY2VyLmNvbSUyRnByaWNpbmclMjIlMkMlMjJjJTIyJTNBJTIyUG9ydGZvbGlvJTIwUmViYWxhbmNlciUyMiUyQyUyMmQlMjIlM0ElMjIxYjVhMDcxOS1jMTFjLTQwOTEtYWZiYi00NGE1MjRhMDM2ZGUlMjIlMkMlMjJlJTIyJTNBJTIyMWJhOTYwOWMtMjI0Ni00YjYwLTk1ZWUtYzg0YTRlNDhmOTkzJTIyJTJDJTIyZiUyMiUzQWZhbHNlJTJDJTIyZyUyMiUzQXRydWUlMkMlMjJoJTIyJTNBdHJ1ZSUyQyUyMmklMjIlM0ElNUIlMjJsb2NhdGlvbiUyMiU1RCUyQyUyMmolMjIlM0ElNUIlNUQlMkMlMjJuJTIyJTNBMTkzJTdEJTdE" \ | base64 --decode \ | python -c "import sys; import json; from urllib.parse import unquote; print(json.dumps(json.loads(unquote(sys.stdin.read())), indent=2, sort_keys=True))" |
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | { "a": null, "b": { "a": "", "b": "https://assetrebalancer.com/pricing", "c": "Portfolio Rebalancer", "d": "1b5a0719-c11c-4091-afbb-44a524a036de", "e": "1ba9609c-2246-4b60-95ee-c84a4e48f993", "f": false, "g": true, "h": true, "i": [ "location" ], "j": [], "n": 193 }, "id": "810b9b1ca7859c3ec11a6452473d16fc", "src": "js", "t": 8, "tag": "4.5.21", "v2": 1 } |
« Vous avez peut-être remarqué dans la vidéo que lorsque j'ai chargé l'application pour la première fois, la première page a généré deux demandes, tandis que chaque autre chargement de page n'en créait qu'une. Voici ce que j'ai trouvé lorsque j'ai décodé cette deuxième demande:
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | { "data": [ 4669, 20, 26, 13, 21, 20, 40, 21, 25, 14 ], "muid": "1b5a0719-c11c-4091-afbb-44a524a036de", "sid": "1ba9609c-2246-4b60-95ee-c84a4e48f993", "source": "mouse-timings-10", "url": "https://assetrebalancer.com/" } |
Enfin, chaque demande contient le même cookie, identifiant de manière unique l'utilisateur:
Code : | Sélectionner tout |
Cookie: m=e29f7c00-b748-4e5f-8625-34d14dbc1c01
En fait, le développeur n'est ni le seul ni le premier à avoir découvert ce mécanisme. Des rapports de plusieurs autres développeurs, dont certains datent de 2017, en avaient déjà fait état.
Dans l'un des fils de discussion sur Github, un employé de Stripe a suggéré que ce comportement n'était pas intentionnel et que Stripe chercherait un correctif. C'était il y a 7 mois, et il n'y a eu aucun suivi de Stripe sur ce fil ou ailleurs que le développeur ait pu trouver.
Le développeur a signalé ce problème au support Stripe pour voir s'il s'agissait d'un comportement prévu et comment l'éviter.
Stripe a répondu rapidement pour lui dire que le suivi des utilisateurs était de par leur conception et qu'il devait accueillir cette fonctionnalité avec enthousiasme :
« Salut Michael,
« Merci de m'avoir contacté. Je suis Faith du support Stripe.
« Allant dans le vif du sujet, les appels vus le sont par design afin de détecter la fraude et sont dans le meilleur intérêt de l'utilisateur. Selon les documents : «Pour tirer le meilleur parti de la fonctionnalité de fraude avancée de Stripe, incluez ce script sur chaque page, et pas seulement sur la page de paiement. Cela permet à Stripe de détecter un comportement anormal pouvant être révélateur d'une fraude lorsque les clients naviguent sur votre site Web. »
« https://stripe.com/docs/js/including
« Veuillez nous informer si vous rencontrez d'autres problèmes ou si vous avez d'autres préoccupations ».
Et le développeur d’estimer que « La ligne évoquant le ‘meilleur intérêt de l'utilisateur’ était particulièrement condescendante. La partie bénéficiant le plus de cette collecte de données est clairement Stripe et non l'utilisateur. Stripe obtient des données gratuites pour former ses modèles de détection de fraude et potentiellement vendre ces informations aux annonceurs.
« Pour l...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.