recherche
Maisoninterface Webtutoriel CSSJ'ai profité d'une erreur dans le code d'une application de rencontres

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.

I took advantage of an error in the code of a dating app
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);
}

Traitement d'image de cette application de rencontres.

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.

Comment masquer des images dans les applications de rencontres ?

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.

I took advantage of an error in the code of a dating app

Exploiter le bug avec une extension de navigateur

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!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
CSS Flexbox vs Grid: une revue complèteCSS Flexbox vs Grid: une revue complèteMay 12, 2025 am 12:01 AM

Le choix de Flexbox ou de la grille dépend des exigences de mise en page: 1) Flexbox convient aux dispositions unidimensionnelles, telles que la barre de navigation; 2) La grille convient aux dispositions bidimensionnelles, telles que les dispositions de magazines. Les deux peuvent être utilisés dans le projet pour améliorer l'effet de mise en page.

Comment inclure les fichiers CSS: méthodes et meilleures pratiquesComment inclure les fichiers CSS: méthodes et meilleures pratiquesMay 11, 2025 am 12:02 AM

La meilleure façon d'inclure des fichiers CSS est d'utiliser des balises pour introduire des fichiers CSS externes dans la pièce HTML. 1. Utilisez des balises pour introduire des fichiers CSS externes, tels que. 2. Pour les petits ajustements, le CSS en ligne peut être utilisé, mais doit être utilisé avec prudence. 3. Les grands projets peuvent utiliser des préprocesseurs CSS tels que SASS ou moins pour importer d'autres fichiers CSS via @Import. 4. Pour les performances, les fichiers CSS doivent être fusionnés et CDN doit être utilisé et compressé à l'aide d'outils tels que CSSNANO.

Flexbox vs Grid: Dois-je les apprendre tous les deux?Flexbox vs Grid: Dois-je les apprendre tous les deux?May 10, 2025 am 12:01 AM

Oui, vous émeuble-chouchoudion-dimensionnal, flexiblelayAndavigationMenus.2)

Mécanique orbitale (ou comment j'ai optimisé une animation de clés CSS)Mécanique orbitale (ou comment j'ai optimisé une animation de clés CSS)May 09, 2025 am 09:57 AM

À quoi cela ressemble-t-il de refactor votre propre code? John Rhea sépare une vieille animation CSS qu'il a écrite et traverse le processus de réflexion pour l'optimiser.

Animations CSS: est-il difficile de les créer?Animations CSS: est-il difficile de les créer?May 09, 2025 am 12:03 AM

CSSANIMATIONSARENOTINÉMENT HAUTS BUTREQUIREPRACTICIT ENCRIPTION DES PROFESSIONS DESPROPERTIES ET TROUVEMENT

@KeyFrames CSS: les astuces les plus utilisées@KeyFrames CSS: les astuces les plus utiliséesMay 08, 2025 am 12:13 AM

@ KeyframeSispopulardUetOtsSversatity andpowerCreatingsMoothcSSanimations.KeyTrickSinclude: 1) DefiingsMoothTransitionsBetwean

Compteurs CSS: un guide complet de la numérotation automatiqueCompteurs CSS: un guide complet de la numérotation automatiqueMay 07, 2025 pm 03:45 PM

CSSCOUNTERSAREUSEUSTTOMAGAUTAMAMATALUMENTSINDWEBDESIGNS.1) Ils ont été des cas de contenu, des listitems et de la forme.

Ombres de défilement moderne à l'aide d'animations axées sur le défilementOmbres de défilement moderne à l'aide d'animations axées sur le défilementMay 07, 2025 am 10:34 AM

L'utilisation d'ombres de défilement, en particulier pour les appareils mobiles, est un peu de UX subtil que Chris a couvert auparavant. Geoff a couvert une approche plus récente qui utilise la propriété d'animation-timeline. Voici encore une autre façon.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !