En utilisant une application de rencontres façon Tinder, une de celles dans lesquelles, après un like mutuel, l'application met en contact les personnes impliquées, j'ai remarqué que, pour promouvoir leur forfait premium, ils utilisaient des images floues pour vous présenter les personnes qui ont appuyé sur le bouton J'aime de votre profil.
Après quelques correspondances, j'ai remarqué que les images floues appartenaient à de vrais comptes, c'est-à-dire qu'il ne s'agissait pas d'un ensemble d'images génériques ou d'espaces réservés.
Exemple de l'effet de flou appliqué à la photographie
Cela semblait trop évident, alors j'ai ouvert la console de développement de mon navigateur et je suis allé dans le code CSS pour vérifier mes soupçons. Ils ne pouvaient pas commettre une erreur aussi simple, pensais-je, ils protègent l'identité des photographies avec un simple filtre CSS : flou.
.hidden-image { filter: blur(4px); }
Les images réelles ont été servies par le CDN de cette application, puis un filtre a été appliqué pour les masquer, donc pour savoir qui vous avait aimé, il vous suffisait de supprimer le filtre.
Malheureusement, il était impossible d'obtenir d'autres données à partir des images ou de la structure de l'URL, des appels API ou de toute autre donnée ; ni le nom, ni le profil, ni aucune autre information n'était accessible autre que la photo de profil.
C'était certainement une erreur architecturale, c'est vrai qu'il est très simple de cacher les images dans le frontend, avec CSS, on économise de l'espace disque et on évite le temps de traitement dans le backend, mais une meilleure option aurait été d'utiliser un ensemble d'images génériques pour tous les comptes.
Une autre alternative aurait été de générer automatiquement une vignette (et d'autres modifications, comme changer le format, exemple : webp) à chaque fois qu'un utilisateur met à jour son image de profil principale ; cela consomme un peu plus d'espace mais protège les images réelles et personnalise l'expérience pour chaque utilisateur.
Pour exploiter le bug, j'ai créé un petit script Javascript et l'ai intégré dans une extension pour automatiser le processus de déblocage à chaque fois que j'entrais dans la page.
Ce petit oubli de la part des développeurs a duré environ deux ans. Il est maintenant corrigé donc si vous essayez de rechercher le bug sur les principales pages de rencontres, vous ne le trouverez plus, et c'est aussi la principale raison pour laquelle j'ai décidé de poster à ce sujet
L'application a modifié le code de sa version Web, laissant le reste de l'interface utilisateur presque intact et a choisi de créer une vignette obscurcie pour chaque compte, mais en la traitant depuis le backend, de sorte qu'il est complètement impossible d'obtenir l'image réelle .
Est-ce que vous en avez profité aussi ? Des points bonus si vous connaissez le nom du site.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!