Je me souviens que l'été dernier, j'ai aidé une plateforme sociale à faire face à des attaques d'enregistrements malveillants. Cette nuit-là, dans les journaux du serveur, des dizaines de milliers de nouveaux comptes sont soudainement apparus, tous les robots fantômes, la plateforme a presque été entraînée vers le bas - de nos jours, même le CDN doit se prémunir contre les “coéquipiers”, après tout, ce n'est pas seulement une gêne, cela peut directement paralyser l'entreprise. Après tout, l'enregistrement malveillant n'est pas seulement une gêne, il peut directement paralyser l'entreprise.
J'ai testé quelques plateformes sociales grand public et j'ai constaté que le simple fait de s'appuyer sur des restrictions d'IP ou sur un code de vérification de base ne permet pas de bloquer les scripts avancés ; ces robots peuvent désormais simuler le comportement humain, procéder à des enregistrements par lots, publier des publicités, effleurer les commentaires, et même voler l'identité de l'utilisateur.
Pourquoi les méthodes traditionnelles échouent-elles ? Pour faire simple, la liste noire des adresses IP permet facilement de tuer par erreur de vrais utilisateurs, et les codes d'authentification ordinaires, tels que le numéro CAPTCHA, ont depuis longtemps été piratés par la reconnaissance d'image de l'IA pour tout le monde ; l'année dernière, j'ai participé à un projet, la plateforme a utilisé un simple code d'authentification, le résultat du taux de réussite du robot allant jusqu'à 80%, le nombre est effrayant, n'est-ce pas ? Ne croyez pas à la rhétorique marketing “une seule clé contre l'enregistrement”, la sécurité n'a pas de solution miracle.
Pour résoudre complètement le problème de l'enregistrement malveillant, nous devons le couper à la source - la combinaison du CAPTCHA et de l'empreinte digitale de l'appareil est la clé ; le CAPTCHA est chargé de contester l'authenticité de l'utilisateur, tandis que l'empreinte digitale de l'appareil suit l'unicité de l'appareil, une approche à deux volets qui rendra les bots invisibles.
Commençons par les CAPTCHA : tous les CAPTCHA ne fonctionnent pas, les CAPTCHA graphiques (comme le texte tordu) sont dépassés, je recommande les CAPTCHA comportementaux tels que les puzzles à glissement ou les tapotements, qui nécessitent une coordination main-œil humaine et sont difficiles à simuler pour les machines ; par exemple, CDN5 a un CAPTCHA intelligent intégré dans son service, qui ajuste dynamiquement la difficulté en fonction du risque - un simple glissement pour un risque faible, et une interaction à plusieurs tapotements pour un risque élevé. Un simple glissement pour un risque faible, une interaction multi-points pour un risque élevé, ce qui a permis de réduire le taux d'enregistrement malveillant de 60% lors de tests en conditions réelles.
Mais le CAPTCHA ne suffit pas, l'empreinte digitale de l'appareil doit être remplie ; qu'est-ce que l'empreinte digitale de l'appareil ? Pour parler franchement, il s'agit des caractéristiques du navigateur, des informations matérielles (telles que la résolution de l'écran, la liste des polices) pour générer un identifiant unique, même si l'utilisateur change d'adresse IP, l'identifiant de l'appareil peut être reconnu ; les outils couramment utilisés sont FPJS ou des bibliothèques d'empreintes digitales développées par l'utilisateur lui-même ; voici un exemple de code, comment utiliser JavaScript pour collecter des données d'empreintes digitales de base :
Ce code n'est que la version de base, en pratique, vous devez ajouter des sources d'entropie telles que le rendu WebGL ou le contexte audio, pour améliorer l'unicité ; j'ai aidé CDN07 à intégrer cet ensemble de choses, leur CDN de haute défense, l'empreinte digitale des appareils peut identifier 99,8% appareils, les tentatives d'enregistrement répétées à bloquer directement.
La combinaison du CAPTCHA et de l'empreinte digitale de l'appareil se déroule comme suit : lorsqu'un utilisateur s'inscrit, le CAPTCHA est d'abord déclenché, et après avoir réussi le défi, le serveur vérifie l'empreinte digitale de l'appareil - si l'empreinte digitale a été associée à un comportement malveillant (par exemple, plusieurs tentatives dans un court laps de temps), l'inscription est refusée même si le CAPTCHA réussit le défi ; les données de tests en conditions réelles montrent que cette stratégie combinée peut réduire les comptes malveillants de 85% ou plus, et le taux de faux positifs n'est que de 0,1%. 85% ou plus, et le taux de faux positifs n'est que de 0,1%.
Cracher un mot : certaines plateformes, au nom de l'expérience utilisateur, suppriment complètement le CAPTCHA, ce qui a pour résultat de faire pourrir le robot - la sécurité et l'expérience doivent être équilibrées, il ne faut pas être extrême ; par exemple, la solution de 08Host est intelligente, elle utilise un modèle de notation des risques : les dispositifs à faible risque (comme la première visite) sont exempts de CAPTCHA, les dispositifs à haut risque renforcent la validation, de sorte que les vrais utilisateurs ne ressentent rien et que les bots aient du mal à s'en sortir. que les vrais utilisateurs ne se sentent pas concernés et que les robots aient du mal.
Détails techniques, l'implémentation côté serveur est importante ; les données d'empreintes digitales des appareils doivent être stockées et comparées, je préfère utiliser Redis pour stocker le hachage des empreintes digitales, définir le TTL pour nettoyer automatiquement les vieilles données afin d'éviter le gonflement de la base de données. Voici un exemple en Node.js :
Ce code est simple mais efficace, et lorsqu'il est réellement déployé, vous devez ajouter des modèles d'apprentissage automatique pour analyser les modèles comportementaux, tels que la fréquence d'enregistrement, les anomalies géographiques, etc. CDN5 et CDN07 offrent tous deux une intégration API, mais 08Host est encore plus impitoyable, avec leur analyse comportementale en temps réel intégrée, qui ajuste automatiquement les seuils.
Comparaison des données : avec le CAPTCHA seul, le taux de blocage des enregistrements malveillants est d'environ 50-70%, plus l'empreinte digitale de l'appareil qui monte en flèche à 90-95% ; une application sociale que j'ai testée l'année dernière avait plus de 3 000 comptes malveillants par jour avant l'intégration, et après l'intégration, il est tombé à moins de 200, et la charge du serveur a été divisée par deux - l'effet, qui vaut le prix, a été très positif. L'effet de l'intégration vaut son prix.
Un dernier mot d'avertissement : ne vous attendez pas à en finir, le chantage évolue ; des mises à jour régulières des algorithmes d'empreintes digitales et des types de CAPTCHA sont essentielles, et je révise ma politique de sécurité tous les trimestres. En résumé, combiner CAPTCHA et empreintes digitales n'est pas une option, mais une nécessité, en particulier pour les plateformes sociales.
Si vous choisissez un service CDN, CDN5 Captcha est fort mais l'empreinte digitale est faible, CDN07 Device Fingerprinting est précis mais plus cher, 08Host est rentable et adapté aux petits et moyens projets - choisissez-le selon vos besoins, la sécurité, investir plus que vous ne le regretterez.

