Le site Web La technologie de reconnaissance des empreintes digitales est inquiétante. Il fait référence à la collecte de métadonnées utilisateur suffisantes pour identifier l'utilisateur. JavaScript offre diverses possibilités de reconnaissance d'empreintes digitales, combinées avec l'adresse IP accessible par le serveur, ce qui rend la reconnaissance des empreintes digitales très courante.
Cependant, les gens ne considèrent généralement pas le CSS comme un moyen pour les empreintes digitales, il est donc considéré comme "sûr" dans une certaine mesure. Cependant, Oliver Brotchie a proposé une solution pour utiliser CSS uniquement pour un certain degré de reconnaissance des empreintes digitales.
Considérez toutes les requêtes @media
que nous avons. Nous pouvons utiliser any-pointer
pour tester le type de pointeur. Imaginez que pour chaque valeur, nous demandons une image d'arrière-plan complètement unique du serveur. Si l'image est demandée, nous savons que ces requêtes @media
sont vraies. Nous pouvons commencer les empreintes digitales en utilisant une méthode comme celle-ci:
.Pointer { Image d'arrière-plan: URL ('/ unique-id / pointer = aucun') } @media (tout-point: grossier) { .Pointer { Image en arrière-plan: URL ('/ unique-id / pointer = grossier') } } @media (tout-point: très) { .Pointer { Image en arrière-plan: URL ('/ unique-id / pointer = fine') } }
Combiné avec le fait que nous pouvons utiliser prefers-color-scheme
pour tester les préférences en mode obscur, la reconnaissance des empreintes digitales est plus claire. En fait, ce qui concerne le plus Oliver, c'est le projet de requête médiatique de préférence utilisateur CSS actuelle:
Le projet à venir rend non seulement cette approche évolutive, mais augmente également sa précision. Actuellement, sans d'autres méthodes, il est difficile de s'associer éventuellement à chaque demande à un visiteur spécifique, car le seul moyen viable de déterminer son origine est de regrouper les demandes par l'adresse IP de la connexion. Cependant, en utilisant le nouveau projet, nous pouvons identifier avec précision toutes les demandes de ce visiteur en générant une chaîne aléatoire et en l'insertant dans la balise URL de chaque visiteur.
Il y a plus de façons de le faire. Nous pouvons créer des requêtes multimédias à 1 pixel et demander une image d'arrière-plan pour chaque requête, devinant ainsi parfaitement la taille de la fenêtre du visiteur. Il peut y avoir une douzaine de requêtes médiatiques étranges moins connues, mais elles sont très utiles pour les empreintes digitales à l'aide de CSS. L'utilisation de cela avec diverses requêtes @supports
permet de deviner efficacement le navigateur exact. Combiné avec la technique classique de tester des installations de polices locales spécifiques, vous pouvez obtenir une assez bonne machine de reconnaissance d'empreintes digitales.
@ FONT-FACE { Font-Family: «Some-Font»; SRC: local (quelque police), url ('/ unique-id / somefont'); } . Font-Family: «Some-Font»; }
Le code CSS généré est très grand (c'est le code SASS qui le génère), mais évidemment, il sera considérablement réduit une fois que nous pourrons utiliser des propriétés personnalisées dans l'URL.
Je ne suis pas trop inquiet de ce problème, principalement parce que je ne désactive pas JavaScript, qui a déjà une gamme plus large de capacités de reconnaissance d'empreintes digitales. De plus, il existe d'autres types de vulnérabilités de sécurité CSS, telles que la lecture des liens accédés (résolus par le navigateur), des journaux clés et des styles en ligne générés par l'utilisateur, et ce que certains ont souligné dans un autre article.
Cependant, les recherches d'Oliver sur la reconnaissance des empreintes digitales sont excellentes et méritent l'attention de toute personne qui connaît une meilleure cybersécurité que moi.
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!