L'en-tête de requête HTTP User-Agent identifie un client par son système d'exploitation, son type de navigateur et sa version. Configurez une liste noire ou blanche User-Agent pour restreindre l'accès à vos ressources CDNDCDN.
Remarques sur l'utilisation
Vous ne pouvez configurer qu'une liste noire ou une liste blanche User-Agent, mais pas les deux simultanément.
Si l'en-tête User-Agent d'une requête correspond à une valeur de la liste noire, la requête atteint toujours le point de présence (POP) CDNDCDN, mais ce dernier la rejette avec un code d'état 403 et enregistre la requête dans les journaux.
Les requêtes malveillantes bloquées génèrent tout de même des frais de trafic minimes, car elles consomment des ressources de traitement sur les nœuds CDNDCDN. Si les clients utilisent HTTPS, des frais liés aux requêtes HTTPS sont également facturés.
Procédure
Connectez-vous à la console CDN.
Dans le volet de navigation de gauche, cliquez sur Domain Names.
Sur la page Domain Names, recherchez le nom de domaine cible et cliquez sur Manage dans la colonne Actions.
Dans le volet de navigation du domaine, cliquez sur Access Control.
Cliquez sur l'onglet User-Agent Blacklist/Whitelist.
Sous l'onglet User-Agent Blacklist/Whitelist, cliquez sur Modify.
-
Suivez les instructions à l'écran pour configurer une Blacklist ou une Whitelist pour l'en-tête User-Agent.
Paramètre
Description
Type
Le type de liste.
Blacklist
Si l'en-tête User-Agent d'une requête correspond à une valeur de la liste noire, l'accès est refusé et un code d'état 403 est renvoyé.
Whitelist
Seules les requêtes dont l'en-tête User-Agent correspond à une valeur de la liste blanche peuvent accéder aux ressources du domaine.
Rules
Séparez plusieurs valeurs User-Agent par une barre verticale (|). Les caractères génériques () sont pris en charge. Exemple :
curl|IE|chrome|firefox*.Cette fonctionnalité nécessite une correspondance exacte et ne prend pas en charge la correspondance de sous-chaînes. Par exemple,
curl/7.68.0ne correspond qu'aux requêtes dont l'en-tête User-Agent est exactementcurl/7.68.0. Pour faire correspondre toutes les requêtes contenant un mot-clé spécifique, encadrez-le de caractères génériques (), comme7.68.0 oucurl*.RemarquePour contrôler l'accès des requêtes dont l'en-tête User-Agent est vide, utilisez
this-is-empty-uapour représenter une valeur User-Agent vide.Sur une liste blanche : si une règle inclut
this-is-empty-ua, les requêtes dont l'en-tête User-Agent est vide sont autorisées.Sur une liste noire : si une règle inclut
this-is-empty-ua, les requêtes dont l'en-tête User-Agent est vide sont refusées.
La liste noire/blanche User-Agent ne prend pas en charge le contrôle d'accès pour les requêtes dépourvues d'en-tête User-Agent. Pour gérer ce type de requêtes, utilisez EdgeScript. Pour plus d'informations, consultez la rubrique EdgeScript. Vous pouvez également ou soumettre un ticket pour demander une configuration backend.
Rule Condition
Une condition de règle identifie diverses informations de paramètre dans une requête utilisateur. Cela détermine si une configuration s'applique à cette requête.
ImportantLorsque vous référencez des conditions de règle, leur mise en correspondance se base sur la priorité des conditions de règle associées, et non sur l'ordre de configuration de la fonctionnalité elle-même.
Ne pas utiliser : n'utilise pas de condition de règle.
Pour ajouter ou modifier des conditions de règle, gérez-les dans le Rules Engine.
Cliquez sur OK.
Exemples de configuration
-
Exemple 1 : Liste blanche
Règle :
*IE*|*firefox*Résultat : Seules les requêtes provenant de clients s'identifiant comme Internet Explorer ou Firefox peuvent accéder aux ressources. Toutes les autres requêtes sont refusées.
-
Exemple 2 : Liste noire
Règle :
*IE*|this-is-empty-uaRésultat : Les requêtes provenant de clients s'identifiant comme Internet Explorer ou les requêtes dont l'en-tête User-Agent est vide sont refusées.
-
Exemple 3 : Liste noire (correspondance avec caractère générique)
Règle incorrecte :
curl/7.68.0Règle correcte :
*curl/7.68.0*ou*7.68.0*La règle
curl/7.68.0ne fonctionne pas, car la fonctionnalité exige une correspondance exacte et non une correspondance de sous-chaîne. Pour bloquer toutes les requêtes contenant cette chaîne, utilisez des caractères génériques (*).