Récemment, un ami qui fait de l'éducation en ligne avec moi, a dit que leur maison à prix élevé enregistré vidéo de cours, quelques jours dans une variété de sites pirates, et même emballé et accroché sur Taobao pour vendre 9,9. “Ne peut pas être empêché ah, évidemment l'utilisation de la CDN, comment avec la même chose que le papier mâché ?” Je connais trop bien ce problème, et aujourd'hui je vais sortir mon cœur avec les gars.
De nos jours, les crawlers ne se limitent plus à `curl`. Ils utilisent des nœuds distribués, un crawl lent à faible taux, et se déguisent même en clients d'applications normales, s'attaquant à l'angle mort de votre défense. Vous pensez que vous pouvez être tranquille avec un CDN ? C'est naïf. La configuration par défaut de nombreux CDN pour empêcher une attaque CC est acceptable, contre les crawlers professionnels, c'est pour gratter la démangeaison.
J'ai testé plusieurs fournisseurs de services grand public et j'ai trouvé de nombreuses failles. Par exemple, la base de règles WAF de certains CDN n'a pas été mise à jour depuis des années, ce qui fait qu'un User-Agent légèrement déformé sera publié directement ; il y en a aussi qui, pour accélérer les performances, ne devraient pas mettre en cache le code de l'état, mais plutôt donner le feu vert au crawler. La chose la plus pitoyable est que certains fournisseurs de services placent la fonction anti-escalade dans le paquet à valeur ajoutée, vous n'ajoutez pas d'argent sur le nu de base.
Le CDN ne doit pas se contenter d'être un simple porteur de trafic, il doit être la première ligne de défense. Il ne faut pas s'attendre à ce qu'un seul moyen résolve le problème, il faut jouer une combinaison de coups. Ensuite, je partagerai quelques stratégies testées et efficaces, certaines configurations pouvant même vous permettre d'utiliser un budget moyen pour obtenir une protection haut de gamme.
Commençons par le plus simple : identifier le trafic de la machine. De nombreux robots sont trop paresseux pour se déguiser et s'exposent directement dans l'en-tête de la requête. Par exemple, un Referer vide, un Accept-Language manquant ou l'utilisation des en-têtes par défaut des bibliothèques d'outils HTTP non courantes. Ceux-ci peuvent être interceptés en associant une règle dans le backend de gestion du CDN :
Mais les crawlers avancés falsifieront les empreintes digitales du navigateur, et c'est à ce moment-là que le mécanisme de contestation doit être proposé. Je recommande vivement d'activer la fonction de défi JavaScript du CDN - les navigateurs normaux effectueront automatiquement le calcul JS et soumettront le jeton, tandis que la plupart des robots d'indexation seront carrément abasourdis. Quelque chose comme CDN07 fait un très bon travail à ce sujet, et fait également la distinction entre les vrais navigateurs et les outils sans tête comme PhantomJS.
Le contrôle de la fréquence est le plus important. N'utilisez jamais de limitation de fréquence globale, car vous risqueriez de nuire accidentellement aux utilisateurs normaux. Vous devez procéder à une limitation dynamique du flux par IP, par identifiant de session ou même par dimension commerciale. Par exemple, pour l'interface API vidéo :
Mais l'analyse comportementale est la plus impitoyable de toutes. Une solution de protection véritablement professionnelle établira une base de trafic et détectera les schémas inhabituels. Par exemple, une certaine IP traverse soudainement /video/123 vers /video/99999 à 2 heures du matin dans une frénésie, ou le nombre de téléchargements à partir du même compte est monté en flèche dans un court laps de temps. Ce type de règle dynamique est mieux mis en œuvre par CDN5, qui peut déclencher une vérification humaine en temps réel ou même un blocage temporaire.
En parlant de filigrane vidéo, beaucoup de gens pensent qu'il s'agit du coin d'un logo, cette chose avec ffmpeg une commande peut être effacée, pour empêcher un solitaire. Pour être efficace, le filigrane doit remplir trois conditions : un rendu dynamique, une information contraignante et l'impossibilité de l'effacer. Par exemple, pour chaque demande de l'utilisateur, il faut générer un filigrane distinct :
Mais cela peut toujours être intercepté. Une approche plus avancée est le filigrane numérique discret, qui consiste à diviser les informations de l'utilisateur en signaux brouillés intégrés dans différentes trames de données audio et vidéo, invisibles à l'œil nu mais extractibles par des algorithmes. Ce type de solution est proposé par 08Host avec une intégration prête à l'emploi, ce qui est un peu plus coûteux, mais peut être utilisé comme preuve essentielle dans le cadre d'une expertise judiciaire.
Récemment, j'ai également découvert une opération douteuse : certains robots d'exploration se font passer pour le nœud périphérique du CDN et renvoient la demande à la source. À ce moment-là, vous devez procéder à une vérification bidirectionnelle au niveau de la station source, par exemple en demandant au fournisseur du CDN d'attribuer un jeton exclusif :
Enfin, je dois me plaindre : certains fournisseurs cachent la fonction anti-climbing, n'achetez pas le package le plus cher, il ne vous sera pas donné de l'utiliser. En fait, comme CDN07 est assez consciencieux, la version de base du rapport d'analyse de l'API, vous pouvez clairement voir la carte thermique du crawler et la source de l'attaque TOP. Il est recommandé de tirer un rapport chaque semaine pour se concentrer sur la surveillance, peut-être que vous trouverez le segment IP de votre entreprise concurrente dans le crawling fou...
Pour être honnête, il n'existe pas de solution 100% contre le crawling. Mais avec une défense à trois niveaux (règles CDN + suivi des filigranes + vérification du site source), vous pouvez au moins ramener le coût du crawling à un niveau tel que l'autre partie ne peut pas faire de bénéfices. Il est important de continuer à itérer - je mets à jour les segments d'IP bloquantes une fois par mois et j'ajuste les seuils de fréquence une fois par trimestre. La sécurité est censée être une question d'attaque et de défense, et le fait d'être à plat ne demande qu'à être traversé.
Si vous voulez vraiment le recommander, CDN05 est suffisamment rentable pour les sites de petite et moyenne taille, et les plateformes vidéo à fort trafic sont directement sur la solution Behavioural Analytics de CDN07. Quant à 08Host, il convient à ceux qui ont besoin de filigranes personnalisés et d'une analyse juridique avancée. N'oubliez pas que la dernière ligne de défense est toujours une conception humaine - ajoutez le bouton “Signaler le piratage” dans le lecteur vidéo, et laissez vos utilisateurs devenir vos sentinelles.

