Lorsque vous configurez un modèle de protection, vous devez l'appliquer à un objet protégé. WAF crée automatiquement un objet protégé pour chaque ressource intégrée, ce qui rend généralement la configuration manuelle inutile. Toutefois, si vous gérez de nombreuses ressources, des règles de protection complexes ou si vous avez besoin de configurations avancées (décodage spécifique, gestion des cookies, en-têtes de réponse personnalisés), il peut être nécessaire de configurer manuellement les objets protégés ou les groupes d'objets protégés. Cette rubrique explique comment les configurer et les gérer pour une sécurité précise et efficace.
Concepts clés
objet protégé : Lorsque vous ajoutez un nom de domaine ou une instance de service cloud à WAF, celui-ci crée automatiquement un objet protégé correspondant. Lors de l'utilisation d'un modèle de protection, vous devez sélectionner un objet protégé comme cible.
groupe d'objets protégés : Vous pouvez regrouper plusieurs objets protégés au sein d'un groupe d'objets protégés pour en faciliter la gestion centralisée. Chaque objet protégé ne peut appartenir qu'à un seul groupe d'objets protégés.
Prérequis
Avant de commencer, assurez-vous que les conditions suivantes sont remplies :
Exigence d'intégration : Vous devez avoir ajouté votre service web à WAF, ce qui entraîne la création d'un objet protégé. Si vous n'avez pas encore intégré votre service, consultez la rubrique Présentation de l'intégration.
Enregistrement ICP : Pour ajouter un objet protégé associé à un nom de domaine hébergé sur un serveur situé en Chine continentale, le nom de domaine doit disposer d'un enregistrement ICP. Pour plus d'informations, consultez la rubrique Comment consulter les informations d'enregistrement ICP d'un nom de domaine ?
Ajouter un objet protégé
Lorsque vous ajoutez une ressource à WAF, celui-ci crée automatiquement un objet protégé correspondant. Il n'est généralement pas nécessaire d'en ajouter manuellement. Cependant, vous devez ajouter manuellement un nom de domaine en tant qu'objet protégé dans les scénarios suivants :
Scénario de service cloud : Plusieurs noms de domaine résolvent vers la même instance de service cloud et vous devez configurer des règles de protection différentes pour chaque nom de domaine.
Scénario d'intégration SDK pour cloud hybride : Plusieurs noms de domaine résolvent vers la même instance de cluster et vous devez configurer des règles de protection différentes pour chaque nom de domaine.
Connectez-vous à la console Web Application Firewall 3.0. Dans la barre de menus supérieure, sélectionnez le groupe de ressources et la région (Chinese Mainland ou Outside Chinese Mainland) correspondant à l'instance WAF.
Dans le volet de navigation de gauche, choisissez .
Sous l'onglet Protected Objects, cliquez sur Add Protected Object.
-
Dans la boîte de dialogue Add Protected Object, configurez les paramètres en fonction du Protected Object Type et cliquez sur OK.
Cloud Service
Paramètre
Description
Domain Name
Saisissez le nom de domaine que vous souhaitez protéger. Vous pouvez saisir un nom de domaine exact, tel que
www.aliyundoc.com, ou un nom de domaine générique, tel que*.aliyundoc.com.Règles de correspondance des noms de domaine génériques :
Un caractère générique ne correspond qu'aux sous-domaines du même niveau. Par exemple,
*.aliyundoc.comcorrespond àwww.aliyundoc.comet àexample.aliyundoc.com, mais pas àwww.example.aliyundoc.com.Lorsqu'un caractère générique est appliqué à un nom de domaine de deuxième niveau tel que
*.aliyundoc.com, il correspond également au nom de domaine de deuxième niveau lui-même,aliyundoc.com.Lorsqu'un caractère générique est appliqué à un nom de domaine de troisième niveau tel que
*.example.aliyundoc.com, il ne correspond pas au nom de domaine de troisième niveau lui-même,example.aliyundoc.com.
Règle de priorité : Si une requête correspond à la fois à un nom de domaine exact et à un nom de domaine générique, les règles associées au nom de domaine exact ont la priorité.
Cloud Service
Sélectionnez le type d'instance de service cloud associé au nom de domaine. Valeurs possibles :
ALB : Application Load Balancer.
CLB4 : Classic Load Balancer avec un écouteur TCP.
CLB7 : Classic Load Balancer avec un écouteur HTTP/HTTPS.
ECS : Elastic Compute Service.
NLB : Network Load Balancer.
instance
Sélectionnez l'ID de l'instance ALB. Ce paramètre est requis uniquement si vous définissez Cloud Service sur ALB.
Add to Protected Object Group
Vous pouvez ajouter l'objet protégé à un groupe d'objets protégés afin de centraliser la gestion des règles de protection.
Une fois qu'un objet protégé est ajouté à un groupe, vous ne pouvez configurer les règles de protection que pour le groupe entier. Il n'est plus possible de configurer des règles de protection pour l'objet protégé individuellement.Resource Group
Vous pouvez ajouter l'objet protégé à un groupe de ressources pour simplifier la gestion des ressources et la configuration des autorisations. Si vous n'avez pas d'exigences spécifiques, sélectionnez Default Resource Group. Pour plus d'informations, consultez la rubrique Qu'est-ce qu'un groupe de ressources ?.
Hybrid Cloud SDK Integration
Paramètre
Description
Protected Object Name
Saisissez un nom facile à identifier.
Domain Name/IP Address
Saisissez le nom de domaine que vous souhaitez protéger. Vous pouvez saisir un nom de domaine exact, tel que
www.aliyundoc.com, ou un nom de domaine générique, tel que*.aliyundoc.com.RemarqueRègle de correspondance des noms de domaine génériques : Un nom de domaine générique ne peut correspondre qu'aux sous-domaines du même niveau. Par exemple,
*.aliyundoc.compeut correspondre àwww.aliyundoc.comet àexample.aliyundoc.com, mais pas àaliyundoc.comni àwww.example.aliyundoc.com.Règle de priorité : Si une requête correspond à la fois à un nom de domaine exact et à un nom de domaine générique, les règles de protection du nom de domaine exact ont la priorité.
URL
Saisissez le chemin d'URL que vous souhaitez protéger.
Add to Protected Object Group
Vous pouvez ajouter l'objet protégé à un groupe d'objets protégés afin de centraliser la gestion des règles de protection.
Une fois qu'un objet protégé est ajouté à un groupe, vous ne pouvez configurer les règles de protection que pour le groupe entier. Il n'est plus possible de configurer des règles de protection pour l'objet protégé individuellement.Resource Group
Vous pouvez ajouter l'objet protégé à un groupe de ressources pour simplifier la gestion des ressources et la configuration des autorisations. Si vous n'avez pas d'exigences spécifiques, sélectionnez Default Resource Group. Pour plus d'informations, consultez la rubrique Qu'est-ce qu'un groupe de ressources ?.
Paramètres avancés
WAF propose les paramètres avancés suivants. Pour personnaliser la configuration d'un objet protégé selon vos besoins métier et vos politiques de sécurité, localisez l'objet protégé concerné et cliquez sur Settings dans la colonne Actions.
|**Paramètre**
|
**Description**
| | --- | --- | |
[Paramètres d'adresse IP client](#a37f1420438ll)
|
Si un proxy de couche 7 tel qu'un CDN est déployé devant WAF, vous devez configurer l'option **Obtain Actual IP Address of Client**. Cela permet à WAF de récupérer les adresses IP réelles des clients pour l'analyse de sécurité et pour des fonctionnalités telles que l'affichage de l'**Attacker IP Address** dans les **Security Reports**.
| |
[Paramètres des cookies](#a4f4d8996evv6)
|
Lorsque vous utilisez des modules de protection tels que la **HTTP Flood Protection** et la **Scan Protection**, ou lorsque vous définissez une action de règle sur **CAPTCHA**, WAF ajoute un cookie de suivi et de vérification aux réponses. Vous pouvez configurer le statut d'émission de ce cookie ainsi que son attribut Secure afin de répondre aux exigences de sécurité et de compatibilité.
| |
[En-têtes de réponse personnalisés](#61ae3a3077uxp)
|
Pour les noms de domaine ajoutés en mode d'enregistrement CNAME, vous pouvez ajouter des en-têtes personnalisés aux réponses clientes afin de renforcer la sécurité, d'appliquer des contrôles de politique ou de faciliter le débogage.
| |
[Paramètres de décodage](#cd71246b5eu2g)
|
WAF peut analyser les données dans des formats tels que JSON, XML et Form, et décoder les données encodées en Base64 et les entités HTML. Cela permet à WAF de détecter le trafic malveillant dissimulé par plusieurs couches d'encodage ou de compression.
| |
[Identification de l'utilisateur](#21566a8c8dywz)
|
WAF extrait des informations d'identité utilisateur telles que les noms d'utilisateur, les jetons et les corps JWT des requêtes. Des modules tels que la **Scan Protection**, la gestion des **Bot Management** et les **Custom Rule** utilisent ensuite ces informations pour mettre en place un contrôle de sécurité granulaire au niveau du compte.
| |
[Paramètres de durée d'expiration des actions](#e42ab62db4mhy)
|
Après qu'un client a réussi une **JavaScript Validation**, un **CAPTCHA** ou une **Token-based Authentication**, WAF autorise par défaut les requêtes suivantes pendant 1 800 secondes (30 minutes) sans exiger de nouveau défi. Vous pouvez définir cette durée d'expiration entre 5 et 1 800 secondes. À l'issue de cette période, le client devra à nouveau réussir le défi lors de la prochaine requête.
|
-
Obtain Actual IP Address of Client
Sous l'onglet Attacker IP Address, configurez le paramètre Security Reports. Pour plus d'informations, consultez la rubrique Obtenir les adresses IP réelles des clients.
RemarquePour les noms de domaine ajoutés en mode d'enregistrement CNAME ainsi que pour les instances ECS, CLB et NLB ajoutées en tant que services cloud, il n'est pas nécessaire de répéter cette configuration si vous l'avez déjà effectuée lors de l'intégration de la ressource.
-
HTTP Flood Protection
Sous l'onglet Scan Protection, configurez les options CAPTCHA et Scan Protection.
-
Bot Management Lorsque vous utilisez des fonctionnalités telles que la protection contre les attaques HTTP flood et la protection contre les scans, WAF émet par défaut un cookie nommé
acw_tcafin d'identifier et de suivre le comportement d'accès des clients. Vous pouvez utiliser le commutateur Custom Rule pour activer ou désactiver le Tracking Cookie. Pour n'émettre ce cookie que pour les requêtes HTTPS, activez l'attribut Secure Attribute.ImportantSuggestion de configuration : Nous vous recommandons d'activer le commutateur Status pour le cookie de suivi. Dans le cas contraire, les modules de protection tels que la protection contre les attaques HTTP flood et la protection contre les scans risquent de ne pas fonctionner correctement.
Limitation liée au groupe d'objets protégés : Pour les objets protégés appartenant à un groupe d'objets protégés, l'option Configure Client IP Address est activée par défaut. Il vous est impossible de désactiver le Tracking Cookie ou d'activer l'attribut Is a Layer 7 proxy such as Anti-DDoS Proxy or CDN deployed in front of WAF pour ces objets protégés.
Règle d'application : Si une requête correspond à plusieurs objets protégés et que l'option Tracking Cookie ou l'attribut WAF Link Settings est activé pour au moins l'un des objets protégés correspondants, la fonctionnalité sera activée pour tous les objets protégés concernés.
Limitation : Il n'est actuellement pas possible de configurer l'attribut SameSite du cookie
acw_tc.
-
Slider CAPTCHA Cookie Après qu'un utilisateur a réussi un défi de type slider, WAF émet par défaut un cookie nommé
acw_sc__v3pour enregistrer la vérification. Pour n'émettre ce cookie que pour les requêtes HTTPS, activez l'attribut Secure Attribute.ImportantL'activation de l'attribut Tracking Cookie pour le cookie du slider peut affecter le fonctionnement normal de la fonctionnalité slider sur les sites HTTP.
Pour les objets protégés appartenant à un groupe d'objets protégés, l'attribut Status est désactivé par défaut et ne peut pas être activé.
-
-
Tracking Cookie (mode d'enregistrement CNAME uniquement)
Sous l'onglet WAF Link Settings, configurez l'option Custom Response Header. Vous pouvez ajouter jusqu'à cinq en-têtes. Si le Tracking Cookie d'un en-tête de réponse personnalisé est identique au nom d'un en-tête de réponse provenant du serveur d'origine, la valeur de l'en-tête d'origine sera remplacée par la Tracking Cookie que vous configurez ici.
-
Secure Attribute
Configurez les paramètres sous l'onglet Tracking Cookie. Pour plus d'informations, consultez la section Annexe : Paramètres de décodage.
-
Secure Attribute
Configurez les paramètres sous l'onglet Slider CAPTCHA Cookie. Vous pouvez configurer jusqu'à cinq règles pour chaque objet protégé, classées par ordre de priorité.
-
Vous pouvez extraire les informations d'identité utilisateur depuis les emplacements suivants :
Query String
Body
Cookie
Secure Attribute
-
Format du compte :
Secure Attribute : Par exemple, email***@qq.com.
Secure Attribute : Généralement présent dans un en-tête, un jeton JWT peut contenir des informations utilisateur. Le format courant est
Authorization: Bearer {Token}. Si le jeton est un JWT, vous devez spécifier le champ de compte dans la charge utile décodée.Basic Authentication : Généralement présent dans un en-tête. Le format courant est
Authorization: Basic {Token}.
-
-
WAF Link Settings
Sous l'onglet Custom Response Header, configurez les paramètres suivants :
Header Name : Durée de validité du résultat de vérification lorsque l'Header Value est définie sur JavaScript Validation.
Decode Settings : Durée de validité du résultat de vérification en mode Token-based Authentication lorsque vous utilisez Bot Management pour protéger les services web.
User Identification : Durée de validité du résultat de vérification lorsque l'Header est définie sur CAPTCHA.
Gérer les groupes d'objets protégés
Pour appliquer les mêmes règles de protection à plusieurs objets protégés, utilisez les groupes d'objets protégés afin de centraliser leur gestion.
Dans le volet de navigation de gauche de la console WAF, choisissez .
Sous l'onglet Action Validity Settings, cliquez sur Action Validity Settings.
-
Dans la boîte de dialogue JS Challenge TTL, saisissez un Protected object group name, sélectionnez l'option Rule Action, ajoutez des JavaScript Validation puis cliquez sur Dynamic Token Validity.
RemarqueLa liste Token-based Authentication dans la section CAPTCHA Expiration Time inclut uniquement les objets protégés qui remplissent les conditions suivantes : ils ne font partie d'aucun groupe d'objets protégés et n'ont appliqué que le modèle de protection par défaut ou aucun modèle de protection.
Un objet protégé déjà présent dans un groupe d'objets protégés ne peut pas être ajouté à un autre groupe. Vous devez d'abord le retirer du groupe d'origine avant de pouvoir l'ajouter à un nouveau groupe.
Lorsque vous créez un modèle de protection, vous pouvez définir l'option Rule Action sur CAPTCHA afin d'appliquer le modèle à tous les objets du groupe.
Opérations quotidiennes
Gérer les objets protégés
Afficher les règles de protection d'un objet protégé : Dans la colonne Protection Config de l'objet protégé ciblé, cliquez sur Protected Objects. La page Protected Object Groups affiche les modèles de protection (règles de protection configurées) associés à l'objet protégé.
Ajouter un objet protégé à un groupe d'objets protégés : Dans la colonne Create de l'objet protégé ciblé, cliquez sur
> Create Protected Object Group. Vous pouvez également sélectionner plusieurs objets protégés et cliquer sur Associate with Protected Object sous la liste.Afficher les journaux d'un objet protégé : Si vous avez activé Log Service, vous pouvez cliquer sur
> Remarks dans la colonne OK de l'objet protégé ciblé.Supprimer un objet protégé : Dans la colonne Available Objects de l'objet ciblé, cliquez sur Associate with Protected Object. Vous ne pouvez supprimer que les objets protégés ajoutés manuellement. Pour supprimer les objets protégés générés automatiquement, vous devez Apply To la ressource.
Gérer les groupes d'objets protégés
Modifier les objets protégés d'un groupe : Sous l'onglet Protected Object Groups, cliquez sur Actions dans la colonne View Protection Rule du groupe ciblé pour ajouter ou retirer des objets protégés. Si un objet protégé est retiré d'un groupe, le modèle de protection par défaut lui est automatiquement appliqué.
Modifier les règles de protection d'un groupe : Sous l'onglet Core Web Protection, cliquez sur Actions dans la colonne Add to Protected Object Group du groupe ciblé pour afficher et modifier le modèle de protection associé au groupe.
Supprimer un groupe d'objets protégés : Sous l'onglet Add to Protected Object Group, localisez le groupe que vous souhaitez supprimer et cliquez sur View Logs dans la colonne Actions.
Quotas et limites
Limites relatives au nombre d'objets protégés : Le nombre d'objets protégés, de groupes d'objets protégés et d'objets protégés pouvant être ajoutés à un seul groupe varie selon l'édition WAF. Pour plus d'informations, consultez la rubrique Éditions WAF. Vous pouvez accéder à la page Protected objects pour consulter le nombre d'objets protégés disponibles. Si vous avez atteint le quota, vous pouvez supprimer des objets protégés ou mettre à niveau votre édition WAF.
Règle de réservation pour les objets protégés : Pour les instances WAF sous abonnement, WAF réserve des quotas pour les noms de domaine gratuits inclus dans votre édition WAF ainsi que pour tout nom de domaine supplémentaire acheté. Par exemple, si vous disposez d'une instance WAF Pro sous abonnement incluant 5 noms de domaine gratuits et prenant en charge 600 objets protégés, et que vous achetez 2 Actions, WAF réserve 7 (5 + 2) objets protégés. Il vous reste alors un quota de 593 (600 - 7) objets protégés supplémentaires.
Limites de configuration pour les objets protégés : Les instances Microservices Engine (MSE) et les noms de domaine personnalisés de Function Compute (FC) ajoutés en tant que services cloud ne prennent pas en charge les Cookie Settings. Les instances FC, MSE ajoutées en tant que services cloud ne prennent pas en charge les Decode Settings.
Paramètres de décodage
Lorsque vous ajoutez une instance ALB en tant que service cloud, l'option Protected Object Groups est désactivée par défaut. Vous pouvez l'activer en fonction de vos besoins métier.
Pour l'intégration SDK pour cloud hybride, vous devez mettre à niveau l'agent vers la version 4.1.0 ou ultérieure pour que les paramètres de décodage prennent effet.
Analyse clé-valeur
-
Edit
Description : Le module d'analyse JSON analyse et restructure les données JavaScript Object Notation (JSON) conformément à la norme RFC 7159. Ce module gère la syntaxe JSON, y compris les objets clé-valeur, les tableaux, les chaînes et les nombres. Le processus comprend la validation de la syntaxe, la conversion des types de données, le traitement des structures imbriquées et le décodage des séquences d'échappement Unicode. La standardisation du format JSON améliore la capacité des règles WAF à détecter le contenu malveillant dans les charges utiles JSON.
Exemple : Pour l'entrée
{"Hello":"World"}, l'analyse JSON extrait lakeyHelloet lavalueWorld.
-
Actions
Description : Le module d'analyse XML analyse et restructure les données Extensible Markup Language (XML) conformément à la spécification XML (Recommandation du W3C). Ce module prend en charge une analyse complète des structures de documents XML, y compris les éléments, les attributs, le contenu textuel, les sections CDATA et les instructions de traitement. Le processus comprend la validation de la syntaxe, la résolution des références d'entité, le traitement des espaces de noms et la standardisation de la structure du document. La standardisation du format XML améliore la capacité des règles WAF à détecter le contenu malveillant dans les charges utiles XML.
Exemple : Pour l'entrée
<Hello attr="desc"><![CDATA[World]]></Hello>, l'analyse XML extrait lakeyHello, lavalueWorld, lakey2Hello.attret lavalue2desc.
-
Protected Object Groups
Description : Le module d'analyse de formulaires analyse et restructure les données application/x-www-form-urlencoded conformément à la norme RFC 1866. Ce module prend en charge une analyse complète des données de formulaire HTML, y compris les paires clé-valeur, les paramètres de tableau, les champs de téléchargement de fichiers et les structures imbriquées. Le processus comprend le décodage URL, le traitement des jeux de caractères, la reconnaissance des séparateurs de paramètres et la conversion des types de données. La standardisation du format des données de formulaire améliore la capacité des règles WAF à détecter le contenu malveillant dans les charges utiles de formulaire.
Exemple : Pour l'entrée
Hello=World, l'analyse de formulaire extrait lakeyHelloet lavalueWorld.
-
Configure Rule
Description : Le module d'analyse multipart analyse et restructure les données multipart/form-data conformément à la norme RFC 2046. Ce module prend en charge une analyse complète des téléchargements de fichiers HTTP et des données de formulaire complexes, y compris les champs de fichier, les champs de texte, les délimiteurs de limite et les structures imbriquées. Le processus comprend la détection des limites, l'analyse des champs, l'extraction du contenu des fichiers et la conversion de l'encodage. La standardisation du format multipart améliore la capacité des règles WAF à détecter le contenu malveillant dans les téléchargements de fichiers et les charges utiles de formulaire complexes.
-
Exemple : Pour l'entrée suivante, l'analyse multipart extrait la
keyHelloet lavalueWorld.------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="Hello" World ------WebKitFormBoundary7MA4YWxkTrZu0gW--
-
Actions
Description : Le module d'analyse GraphQL analyse et restructure les données du langage de requête GraphQL conformément à la spécification GraphQL. Ce module prend en charge une analyse complète des requêtes GraphQL, des définitions de variables, des arguments et des directives, y compris les sélections de champs, les paramètres de requête, les substitutions de variables, les alias et les requêtes imbriquées. Le processus prend en charge l'analyse des paramètres URL, des charges utiles JSON, des requêtes GraphQL brutes et du format de téléchargement de fichiers multipart. La standardisation du format GraphQL améliore la capacité des règles WAF à détecter le contenu malveillant dans les charges utiles GraphQL.
Exemple : Pour la requête d'entrée
HelloWorld{ desc(Hello:"World"){ Hello } }, l'analyse GraphQL extrait lakeyHelloet lavalueWorld.
Décodage
-
Protected Object Groups
Description : Le moteur de décodage Base64 inverse l'encodage Base64 tel que défini dans la norme RFC 4648. Ce module gère le jeu de caractères Base64 standard (A-Z, a-z, 0-9, +, /) et le caractère de remplissage (=). Le processus de décodage comprend la validation des caractères, la gestion du remplissage, l'alignement des octets et les vérifications d'intégrité des données afin de garantir l'exactitude et la fiabilité des données binaires.
Exemple : L'entrée
SGVsbG8gV29scmQhest décodée enHello World!.
-
Delete
Description : Le moteur de décodage des entités HTML analyse les références d'entités de caractères sur la base de la spécification HTML 5.2 (Recommandation du W3C). Ce module prend en charge le traitement standardisé des références de caractères numériques (&#x;) et des entités de caractères nommées (&).
Exemple : L'entrée
Hello World!est décodée enHello World!.
-
Actions
Description : Le moteur de désérialisation PHP inverse la fonction serialize() de PHP. Sur la base du protocole de sérialisation PHP, ce module analyse la syntaxe du format sérialisé, y compris les identificateurs de type (tels que i, s, a et O), les métadonnées de longueur et les structures de données récursives. Le processus comprend la validation des types, les vérifications de sécurité de la mémoire et la reconstruction du graphe d'objets, prenant en charge l'analyse complète des types scalaires, des types composés et de la sérialisation d'objets.
Exemple : Pour l'entrée
payload=O:5:"Hello":1:{s:4:"desc";s:6:"World!";}, la désérialisation PHP extrait lakeypayload.Hello.descet lavaluecorrespondanteWorld!.
-
Additional Domains
Description : La désérialisation Java inverse ObjectInputStream sur la base du protocole de sérialisation Java. Ce module analyse le format binaire du flux de sérialisation Java, y compris les descripteurs de classe, les métadonnées de champ et les informations d'état d'objet. Le processus de décodage suit la spécification de sérialisation JVM et prend en charge l'analyse récursive de graphes d'objets complexes.
Exemple : Pour l'entrée
rO0ABXNyABFqYXZhLnV0aWwuSGFzaE1hcAUH2sHDFmDRAwACRgAKbG9hZEZhY3RvckkACXRocmVzaG9sZHhwP0AAAAAAAAx3CAAAABAAAAABdAAFSGVsbG90AAZXb3JsZCF4, la désérialisation Java extrait la classe Javajava.util.HashMap.
-
Cookie Settings
Description : Le moteur de décodage UTF-7 convertit les encodages de caractères à longueur variable conformément à la norme RFC 2152. Ce module traite les marqueurs d'encodage UTF-7 (+/-) et les séquences de caractères Unicode encodées en Base64. L'algorithme prend en charge la transmission Unicode dans les environnements ASCII 7 bits et inclut une machine d'états d'encodage, une commutation de jeu de caractères et une compatibilité avec les protocoles hérités. Cela le rend adapté aux systèmes de messagerie électronique et aux scénarios de transmission de messages MIME.
Exemple : L'entrée
+/v8 +AEgAZQBsAGwAbwAgAFcAbwByAGwAZAAh-est décodée enHello World!.
-
Decode Settings
Description : Le décodage Unicode est un processus de conversion d'encodage de caractères basé sur la norme Unicode (ISO/IEC 10646). Ce module analyse les séquences d'échappement UTF-16, prenant en charge la notation hexadécimale à quatre octets \uXXXX et le format étendu \u{XXXXXX}. Le processus de décodage suit la spécification Unicode 15.0 afin de garantir un encodage de caractères standardisé.
Exemple : Pour l'entrée
\u0048\u0065\u006c\u006c\u006f\u0020\u0057\u006f\u0072\u006c\u0064\u0021, la sortie après décodage Unicode estHello World!.
-
Base64 Decoding
Description : Le décodage URL inverse l'encodage en pourcentage basé sur la norme RFC 3986. Ce mécanisme traite l'encodage des caractères réservés, des caractères non ASCII et des caractères spéciaux dans la syntaxe URI générique. L'algorithme de décodage suit la spécification du type MIME application/x-www-form-urlencoded et prend en charge l'analyse standard des paramètres de requête HTTP.
Exemple : L'entrée
Hello%20World%21est décodée enHello World!.
-
JSON Data Parsing
Description : Le décodage hexadécimal convertit une chaîne hexadécimale en données binaires sur la base de la norme RFC 4648. Ce module utilise l'ordre des octets big-endian et prend en charge le jeu de caractères hexadécimal standard (0-9, A-F, a-f). Le processus de décodage comprend la validation de l'entrée, la normalisation des caractères et l'alignement des octets.
Exemple : L'entrée
\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21est décodée enHello World!.
-
XML Data Parsing
Description : Le moteur de décodage octal traite les encodages de caractères représentés par une barre oblique inverse suivie de chiffres octaux, tels que
\123. Sur la base de la table ASCII, ce module convertit les nombres octaux en leurs caractères correspondants, prend en charge la plage octale standard de 0 à 377 (0 à 255 en décimal) et peut analyser par lots les séquences d'échappement octales dans du texte mixte.Exemple : L'entrée
\110\145\154\154\157\040\127\157\162\154\144\041est décodée enHello World!.
Décompression
-
Form Data Parsing
Description : Le moteur de décompression Gzip fonctionne sur la base de la norme RFC 1952 et utilise l'algorithme DEFLATE. Ce module traite l'en-tête du format de fichier Gzip (numéro magique 0x1f8b, méthode de compression et indicateurs), la somme de contrôle CRC32 et décompresse les blocs de données compressés. L'algorithme prend en charge le traitement en flux et la décompression par lots, et inclut la gestion de la machine d'états, le traitement des fichiers multi-membres et les mécanismes de récupération d'erreurs. Il est adapté aux scénarios de transmission web, d'archivage de fichiers et de compression de données.
Exemple : Pour les données binaires d'entrée
1f 8b 08 00 11 39 00 69 00 ff 01 0c 00 f3 ff 48 65 6c 6c 6f 20 57 6f 72 6c 64 21 a3 1c 29 1c 0c 00 00 00(présentées au format hexadécimal pour une meilleure lisibilité), la décompression Gzip produit la sortieHello World!.
Prétraitement
-
Multipart Data Parsing
Description : Le module de suppression des commentaires reconnaît et supprime la syntaxe des commentaires sur la base de la norme SQL et de la syntaxe étendue MySQL. Ce module prend en charge deux formats de commentaires définis par la norme ANSI SQL : les commentaires sur une seule ligne (-- suivis de n'importe quels caractères jusqu'à la fin de la ligne) et les commentaires sur plusieurs lignes (toute séquence de caractères entourée par / /). Il est également compatible avec la syntaxe de commentaire conditionnel spécifique à MySQL (/! ... /). Le processus comprend la reconnaissance des marqueurs de commentaire, la gestion des commentaires imbriqués, l'analyse des conditions de version et la validation des limites de syntaxe. En supprimant le contenu des commentaires, ce module améliore la précision de détection du moteur de règles WAF pour les instructions SQL malveillantes et réduit le risque que les attaquants contournent les règles en utilisant des commentaires.
Exemple : Pour l'entrée
/*!40101 SET */@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT ;, la suppression des commentaires produit la sortie SET@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT ;.
-
GraphQL Parsing
Description : Le module de compression des espaces blancs normalise les caractères d'espacement consécutifs. Ce module détecte les séquences de caractères d'espacement consécutifs dans la chaîne d'entrée et les compresse en un seul espace. Le processus inclut un traitement unifié des espaces blancs consécutifs initiaux, finaux et intermédiaires afin de garantir la standardisation et la cohérence du format du texte.
Exemple : Pour l'entrée
Hello World!, la compression des espaces blancs produit la sortieHello World!.