{"id":963,"date":"2026-02-26T12:59:59","date_gmt":"2026-02-26T04:59:59","guid":{"rendered":"https:\/\/www.ddosgj.com\/?p=963"},"modified":"2026-02-26T12:59:59","modified_gmt":"2026-02-26T04:59:59","slug":"comment-le-cdn-a-haute-defense-peut-il-prevenir-les-attaques-de-crawler-et-les-bloquer-grace-a-lidentification-des-utilisateurs-et-a-la-limitation-de-la-frequence","status":"publish","type":"post","link":"https:\/\/www.ddosgj.com\/fr\/963-html","title":{"rendered":"Comment les CDN \u00e0 haute d\u00e9fense emp\u00eachent les attaques de crawlers et bloquent les crawlers malveillants gr\u00e2ce \u00e0 l'identification de l'UA et \u00e0 la limitation de la fr\u00e9quence."},"content":{"rendered":"<p>R\u00e9cemment, j'ai aid\u00e9 quelques clients \u00e0 faire face \u00e0 des attaques de crawlers, et j'ai d\u00e9couvert que beaucoup de gens pensaient que le CDN \u00e0 haute d\u00e9fense fonctionnait bien, mais que les r\u00e9sultats \u00e9taient crawl\u00e9s pour douter de la vie. Une station de commerce \u00e9lectronique a m\u00eame \u00e9t\u00e9 attaqu\u00e9e \u00e0 travers la base de donn\u00e9es des prix, les concurrents prennent directement les donn\u00e9es pour faire de la tarification dynamique, le patron a presque sacrifi\u00e9 l'\u00e9quipe technique au ciel.<\/p>\n<p>Les CDN \u00e0 haute d\u00e9fense peuvent en effet transporter des DDoS, mais pour faire face aux crawlers, il faut les utiliser de mani\u00e8re intelligente. J'ai test\u00e9 et constat\u00e9 que la simple restriction du flux IP ne peut pas emp\u00eacher les crawlers avanc\u00e9s - les personnes qui obtiennent par hasard un pool de proxy seront en mesure d'enfreindre vos r\u00e8gles. Pour que la strat\u00e9gie soit vraiment efficace, il faut commencer par combiner l'identification de l'UA et la limitation de la fr\u00e9quence.<\/p>\n<p><strong>La reconnaissance de l'UA ne consiste pas simplement \u00e0 faire correspondre des mots-cl\u00e9s<\/strong><\/p>\n<p>De nombreuses \u00e9quipes configurent leurs r\u00e8gles d'AU pour ne bloquer que les requ\u00eates qui indiquent clairement \u201dPython\u201d ou \u201dcurl\u201d. De nos jours, les crawlers les plus avanc\u00e9s sont capables de falsifier l'AU, par exemple en se faisant passer pour un navigateur grand public :<\/p>\n<p>Pouvez-vous dire s'il s'agit d'une personne r\u00e9elle ou d'un robot d'exploration rien qu'en regardant cela ? J'ai fait des tests sur CDN5 l'ann\u00e9e derni\u00e8re et le pourcentage de requ\u00eates de crawler qui usurpaient l'UA \u00e9tait aussi \u00e9lev\u00e9 que 83%. La cl\u00e9 doit donc \u00eatre le profil comportemental - une personne normale n'utiliserait pas l'UA de Chrome et demanderait pourtant l'interface API 10 fois par seconde.<\/p>\n<p><strong>Limites de fr\u00e9quence pour jouer une strat\u00e9gie dynamique<\/strong><\/p>\n<p>La fixation d'une r\u00e8gle rigide de \u201d5 requ\u00eates par seconde\u201d peut nuire aux utilisateurs normaux. En particulier lorsqu'il y a des promotions, la fr\u00e9quence des utilisateurs r\u00e9els montera \u00e9galement en fl\u00e8che. J'ai mis en pratique l'algorithme de fr\u00e9quence dynamique sur le n\u0153ud de 08Host :<\/p>\n<p>Cet ensemble de configurations a permis \u00e0 un site d'actualit\u00e9s de r\u00e9duire le nombre de faux positifs de 921 TP3T, tandis que le taux d'interception du crawler a \u00e9galement \u00e9t\u00e9 augment\u00e9 de 371 TP3T.<\/p>\n<p><strong>Dans le monde r\u00e9el, une biblioth\u00e8que d'empreintes digitales doit \u00eatre mise \u00e0 jour en permanence !<\/strong><\/p>\n<p>Les crawlers apprennent aujourd'hui \u00e0 faire pivoter l'AU, mais chacun d'entre eux poss\u00e8de encore des empreintes digitales. Par exemple, Puppeteer contient par d\u00e9faut le mot HeadlessChrome, bien que de nos jours les crawlers avanc\u00e9s suppriment d\u00e9lib\u00e9r\u00e9ment cette marque, mais les caract\u00e9ristiques de l'ex\u00e9cution JavaScript peuvent encore \u00eatre d\u00e9tect\u00e9es.<\/p>\n<p>La base de r\u00e8gles de d\u00e9tection que je maintiens sur la plateforme CDN07 contient plus de 1700 empreintes digitales, avec quelques ajouts r\u00e9cents :<\/p>\n<p>Ces r\u00e8gles semblent simples, mais en r\u00e9alit\u00e9, chacune d'entre elles cache des le\u00e7ons de sang et de larmes. Un client s'est fait berner par un crawler qui utilisait un ancien navigateur UA pour contourner les r\u00e8gles, et ce n'est finalement qu'en d\u00e9tectant les caract\u00e9ristiques du navigateur que l'interception a r\u00e9ussi.<\/p>\n<p><strong>Les limites de fr\u00e9quence doivent \u00eatre con\u00e7ues par couches<\/strong><\/p>\n<p>N'utilisez pas le m\u00eame ensemble de r\u00e8gles de fr\u00e9quence pour toutes les interfaces. L'interface de connexion pr\u00e9sente un niveau de risque compl\u00e8tement diff\u00e9rent de celui de la page d\u00e9taill\u00e9e du produit, et j'ai l'habitude de fixer trois niveaux de limites de fr\u00e9quence pour mes clients :<\/p>\n<p>Les ressources statiques sont assouplies \u00e0 50r\/s, l'API est strictement contr\u00f4l\u00e9e \u00e0 10r\/s, et l'interface de connexion doit \u00eatre limit\u00e9e \u00e0 3r\/s ou moins. Il est particuli\u00e8rement important de prot\u00e9ger l'interface CAPTCHA - de nombreux robots d'exploration rafra\u00eechiront violemment le CAPTCHA, ce qui doit \u00eatre limit\u00e9 \u00e0 1r\/10s.<\/p>\n<p>Exemple de configuration sur CDN5 :<\/p>\n<p><strong>Ne jamais faire confiance \u00e0 une liste blanche d'UA.<\/strong><\/p>\n<p>Certains programmes sugg\u00e8rent de ne publier que les UA des navigateurs les plus courants, et cette approche unique ne manquera pas d'avoir des cons\u00e9quences. Tant de robots d'exploration l\u00e9gitimes (moteurs de recherche, sites de comparaison de prix) ont besoin d'un traitement sp\u00e9cial de nos jours. J'ai vu un site bloquer Googlebot, ce qui a entra\u00een\u00e9 une chute du trafic naturel 40%.<\/p>\n<p>La bonne chose \u00e0 faire est de v\u00e9rifier l'authenticit\u00e9 des robots d'indexation connus. Par exemple, Googlebot propose une m\u00e9thode de v\u00e9rification :<\/p>\n<p>D'autres comme Bingbot ont des m\u00e9canismes de validation similaires, et cette partie doit \u00eatre configur\u00e9e manuellement et ne peut pas s'appuyer sur les r\u00e8gles par d\u00e9faut du CDN.<\/p>\n<p><strong>La v\u00e9rification de la signature du navigateur est l'arme ultime<\/strong><\/p>\n<p>Les robots d'exploration avanc\u00e9s sont d\u00e9sormais parfaitement capables de falsifier l'UA et l'IP et, en fin de compte, c'est l'empreinte digitale du navigateur qui permet de les identifier. Les caract\u00e9ristiques de l'environnement du navigateur sont d\u00e9tect\u00e9es par des d\u00e9fis JavaScript, comme la v\u00e9rification que le fichier navigator.plugins est complet, que le moteur de rendu WebGL correspond, etc.<\/p>\n<p>Sur CDN07, il peut \u00eatre configur\u00e9 comme suit :<\/p>\n<p>Cette solution a \u00e9t\u00e9 test\u00e9e pour bloquer 99,9% headless browsers, mais attention \u00e0 l'impact sur le r\u00e9f\u00e9rencement, il est pr\u00e9f\u00e9rable de mettre sur liste blanche les robots d'indexation connus.<\/p>\n<p><strong>N'oubliez pas de contr\u00f4ler et d'it\u00e9rer<\/strong><\/p>\n<p>La technologie des robots \u00e9volue constamment et les r\u00e8gles qui fonctionnaient le mois dernier peuvent ne plus fonctionner ce mois-ci. Un syst\u00e8me de surveillance doit \u00eatre mis en place pour garder un \u0153il sur ces param\u00e8tres :<\/p>\n<p>Pourcentage de demandes anormales, taux de d\u00e9clenchement du CAPTCHA, distribution de la fr\u00e9quence des demandes \u00e0 travers les interfaces. J'ai l'habitude de faire du Kanban en temps r\u00e9el sur Grafana et d'ajuster les r\u00e8gles imm\u00e9diatement lorsque je trouve des anomalies.<\/p>\n<p>R\u00e9cemment, nous avons d\u00e9couvert que le nouveau crawler commen\u00e7ait \u00e0 simuler la trajectoire de la souris, la prochaine fois que nous parlerons de la fa\u00e7on d'utiliser la biom\u00e9trie comportementale pour se d\u00e9fendre. De nos jours, m\u00eame les CDN doivent \u201dpr\u00e9venir les co\u00e9quipiers\u201d - certains crawlers se d\u00e9guisent m\u00eame en robots de surveillance des CDN !<\/p>\n<p>Une protection vraiment efficace est toujours une combinaison de strat\u00e9gies \u00e0 plusieurs niveaux : la d\u00e9tection de l'AU pour \u00e9liminer les crawlers bas de gamme, les restrictions de fr\u00e9quence pour emp\u00eacher les attaques interm\u00e9diaires et l'authentification du navigateur pour \u00e9liminer les joueurs avanc\u00e9s. Enfin, il existe une issue de secours - au cas o\u00f9 un utilisateur r\u00e9el serait bloqu\u00e9 par erreur, il faut au moins donner aux gens un moyen de se plaindre.<\/p>","protected":false},"excerpt":{"rendered":"<p>R\u00e9cemment, j'ai aid\u00e9 quelques clients \u00e0 faire face \u00e0 des attaques de crawlers, et j'ai d\u00e9couvert que beaucoup de gens pensaient que le CDN \u00e0 haute d\u00e9fense fonctionnait bien, mais que les r\u00e9sultats \u00e9taient crawl\u00e9s pour douter de la vie. Une station de commerce \u00e9lectronique a m\u00eame \u00e9t\u00e9 attaqu\u00e9e \u00e0 travers la base de donn\u00e9es des prix, les concurrents prennent directement les donn\u00e9es pour faire de la tarification dynamique, le patron a presque sacrifi\u00e9 l'\u00e9quipe technique au ciel. Le CDN \u00e0 haute d\u00e9fense peut en effet transporter des DDoS, mais pour faire face au crawler, il faut faire preuve d'ing\u00e9niosit\u00e9. J'ai d\u00e9couvert que le test r\u00e9el, la simple restriction du flux IP ne peut pas emp\u00eacher les reptiles avanc\u00e9s - les gens qui s'engagent de mani\u00e8re d\u00e9sinvolte dans un pool de proxy seront en mesure d'enfreindre vos r\u00e8gles. Une strat\u00e9gie vraiment efficace consiste \u00e0 commencer par une combinaison d'identification d'UA et de restriction de fr\u00e9quence. L'identification de l'UA n'est pas une simple correspondance de mots-cl\u00e9s. De nombreuses \u00e9quipes configurent des r\u00e8gles d'UA, elles n'arr\u00eateront que celles qui contiennent les mots \u00e9vidents \u201dPython\u201d ou \u201dcurl&amp;#822\".<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"gallery","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","footnotes":""},"categories":[150],"tags":[],"collection":[],"class_list":["post-963","post","type-post","status-publish","format-gallery","hentry","category-updates","post_format-post-format-gallery"],"_links":{"self":[{"href":"https:\/\/www.ddosgj.com\/fr\/wp-json\/wp\/v2\/posts\/963","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ddosgj.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ddosgj.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ddosgj.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ddosgj.com\/fr\/wp-json\/wp\/v2\/comments?post=963"}],"version-history":[{"count":1,"href":"https:\/\/www.ddosgj.com\/fr\/wp-json\/wp\/v2\/posts\/963\/revisions"}],"predecessor-version":[{"id":1162,"href":"https:\/\/www.ddosgj.com\/fr\/wp-json\/wp\/v2\/posts\/963\/revisions\/1162"}],"wp:attachment":[{"href":"https:\/\/www.ddosgj.com\/fr\/wp-json\/wp\/v2\/media?parent=963"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ddosgj.com\/fr\/wp-json\/wp\/v2\/categories?post=963"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ddosgj.com\/fr\/wp-json\/wp\/v2\/tags?post=963"},{"taxonomy":"collection","embeddable":true,"href":"https:\/\/www.ddosgj.com\/fr\/wp-json\/wp\/v2\/collection?post=963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}