Cuando configura una plantilla de protección, debe aplicarla a un objeto protegido. WAF crea automáticamente un objeto protegido por cada recurso integrado, por lo que generalmente no se requiere configuración manual. Sin embargo, si tiene muchos recursos, reglas de protección complejas o necesita configuraciones avanzadas como decodificación específica, cookies o encabezados de respuesta personalizados, es posible que deba configurar manualmente los objetos protegidos o los grupos de objetos protegidos. Este tema describe cómo configurarlos y gestionarlos para lograr una seguridad eficiente y detallada.
Conceptos clave
Objeto protegido: cuando agrega un nombre de dominio o una instancia de servicio en la nube a WAF, este crea automáticamente un objeto protegido para dicho elemento. Al usar una plantilla de protección, debe seleccionar un objeto protegido como destino.
Grupo de objetos protegidos: puede agregar varios objetos protegidos a un grupo de objetos protegidos para gestionarlos de forma centralizada. Cada objeto protegido solo puede pertenecer a un grupo de objetos protegidos.
Requisitos previos
Antes de empezar, asegúrese de cumplir con los siguientes requisitos:
Requisito de integración: debe haber agregado su servicio web a WAF, lo cual genera un objeto protegido. Si aún no ha integrado su servicio, consulte Onboarding overview.
Registro ICP: para agregar un objeto protegido correspondiente a un nombre de dominio alojado en un servidor de China continental, el nombre de dominio debe contar con un registro ICP. Para obtener más información, consulte How do I query the ICP filing information about a domain name?.
Agregar un objeto protegido
Cuando agrega un recurso a WAF, este crea automáticamente un objeto protegido para él. Por lo general, no necesita agregarlo de forma manual. No obstante, debe agregar manualmente un nombre de dominio como objeto protegido en los siguientes escenarios:
Escenario de servicio en la nube: varios nombres de dominio resuelven hacia la misma instancia de servicio en la nube y necesita configurar reglas de protección distintas para cada uno.
Escenario de integración del SDK de nube híbrida: varios nombres de dominio resuelven hacia la misma instancia de clúster y necesita configurar reglas de protección distintas para cada uno.
Inicie sesión en la consola de Web Application Firewall 3.0. En la barra de menú superior, seleccione el resource group y la región (Chinese Mainland o Outside Chinese Mainland) de la instancia de WAF.
En el panel de navegación izquierdo, elija .
En la pestaña Protected Objects, haga clic en Add Protected Object.
-
En el cuadro de diálogo Add Protected Object, configure los parámetros según el Protected Object Type y haga clic en OK.
Cloud Service
Parámetro
Descripción
Domain Name
Introduzca el nombre de dominio que desea proteger. Puede introducir un nombre de dominio de coincidencia exacta, como
www.aliyundoc.com, o un nombre de dominio comodín, como*.aliyundoc.com.Reglas de coincidencia de nombres de dominio comodín:
Un comodín solo coincide con subdominios del mismo nivel. Por ejemplo,
*.aliyundoc.comcoincide conwww.aliyundoc.comyexample.aliyundoc.com, pero no conwww.example.aliyundoc.com.Cuando se aplica un comodín a un nombre de dominio de segundo nivel, como
*.aliyundoc.com, también coincide con el propio nombre de dominio de segundo nivel,aliyundoc.com.Cuando se aplica un comodín a un nombre de dominio de tercer nivel, como
*.example.aliyundoc.com, no coincide con el propio nombre de dominio de tercer nivel,example.aliyundoc.com.
Regla de prioridad: si una solicitud coincide tanto con un nombre de dominio exacto como con uno comodín, las reglas del nombre de dominio exacto tienen prioridad.
Cloud Service
Seleccione el tipo de instancia de servicio en la nube asociado al nombre de dominio. Valores válidos:
ALB: Application Load Balancer.
CLB4: Classic Load Balancer con un listener TCP.
CLB7: Classic Load Balancer con un listener HTTP/HTTPS.
ECS: Elastic Compute Service.
NLB: Network Load Balancer.
Instancia
Seleccione el ID de la instancia de ALB. Este parámetro es obligatorio únicamente si establece Cloud Service en ALB.
Add to Protected Object Group
Puede agregar el objeto protegido a un grupo de objetos protegidos para gestionar las reglas de protección de forma centralizada.
Una vez que se agrega un objeto protegido a un grupo, solo podrá configurar reglas de protección para dicho grupo. Ya no será posible configurar reglas de protección para el objeto protegido individual.Resource Group
Puede agregar el objeto protegido a un resource group para simplificar la gestión de recursos y la configuración de permisos. Si no tiene requisitos específicos, seleccione Default Resource Group. Para obtener más información, consulte What is a resource group?.
Hybrid Cloud SDK Integration
Parámetro
Descripción
Protected Object Name
Introduzca un nombre fácil de identificar.
Domain Name/IP Address
Introduzca el nombre de dominio que desea proteger. Puede introducir un nombre de dominio de coincidencia exacta, como
www.aliyundoc.com, o un nombre de dominio comodín, como*.aliyundoc.com.NotaRegla de coincidencia de nombres de dominio comodín: un nombre de dominio comodín solo puede coincidir con subdominios del mismo nivel. Por ejemplo,
*.aliyundoc.compuede coincidir conwww.aliyundoc.comyexample.aliyundoc.com, pero no conaliyundoc.comni conwww.example.aliyundoc.com.Regla de prioridad: si una solicitud coincide tanto con un nombre de dominio de coincidencia exacta como con uno comodín, las reglas de protección del nombre de dominio de coincidencia exacta tienen prioridad.
URL
Introduzca la ruta de URL que desea proteger.
Add to Protected Object Group
Puede agregar el objeto protegido a un grupo de objetos protegidos para gestionar las reglas de protección de forma centralizada.
Una vez que se agrega un objeto protegido a un grupo, solo podrá configurar reglas de protección para dicho grupo. Ya no será posible configurar reglas de protección para el objeto protegido individual.Resource Group
Puede agregar el objeto protegido a un resource group para simplificar la gestión de recursos y la configuración de permisos. Si no tiene requisitos específicos, seleccione Default Resource Group. Para obtener más información, consulte What is a resource group?.
Configuración avanzada
WAF ofrece las siguientes configuraciones avanzadas. Para personalizar la configuración de un objeto protegido según sus requisitos empresariales y políticas de seguridad, localice el objeto protegido y haga clic en Settings en la columna Actions.
|
Parámetro |
Descripción |
|
Si se despliega un proxy de capa 7, como una CDN, delante de WAF, debe configurar la opción Obtain Actual IP Address of Client. Esto garantiza que WAF pueda obtener las direcciones IP reales de los clientes para el análisis de seguridad y funciones como mostrar la Attacker IP Address en Security Reports. |
|
|
Cuando utiliza módulos de protección como HTTP Flood Protection y Scan Protection, o establece una acción de regla en CAPTCHA, WAF añade una cookie de seguimiento y verificación a las respuestas. Puede configurar el estado de emisión de la cookie y su atributo Secure para cumplir con los requisitos de seguridad y compatibilidad. |
|
|
Para los nombres de dominio agregados en modo de registro CNAME, puede añadir encabezados personalizados a las respuestas del cliente con fines de refuerzo de seguridad, control de políticas o depuración. |
|
|
WAF puede analizar datos en formatos como JSON, XML y Form, además de decodificar datos codificados con Base64 y entidades HTML. Esto le permite detectar tráfico malicioso oculto tras múltiples capas de codificación o compresión. |
|
|
WAF extrae de las solicitudes información de identidad del usuario, como nombres de usuario, tokens y cuerpos JWT. Luego, módulos como Scan Protection, Bot Management y Custom Rule utilizan esta información para aplicar un control de seguridad detallado a nivel de cuenta. |
|
|
Después de que un cliente supera una JavaScript Validation, un CAPTCHA o una Token-based Authentication, WAF permite las solicitudes posteriores durante 1800 segundos (30 minutos) de forma predeterminada sin exigir otro desafío. Puede establecer este tiempo de expiración entre 5 y 1800 segundos. Transcurrido ese periodo, el cliente deberá superar nuevamente el desafío en la siguiente solicitud. |
-
Configure Client IP Address
En la pestaña WAF Link Settings, configure el parámetro Is a Layer 7 proxy such as Anti-DDoS Proxy or CDN deployed in front of WAF. Para obtener más información, consulte Obtain real client IP addresses.
NotaPara los nombres de dominio agregados en modo de registro CNAME y para las instancias de ECS, CLB y NLB que se agregan como servicios en la nube, no es necesario repetir esta configuración si ya la completó durante la incorporación de activos.
-
Cookie Settings
En la pestaña WAF Link Settings, configure Tracking Cookie y Slider CAPTCHA Cookie.
-
Tracking Cookie Cuando utiliza funciones como la protección contra inundaciones HTTP y la protección contra escaneos, WAF emite de forma predeterminada una cookie llamada
acw_tcpara identificar y rastrear el comportamiento de acceso del cliente. Utilice el interruptor Status para habilitar o deshabilitar Tracking Cookie. Si desea emitir esta cookie solo para solicitudes HTTPS, habilite Secure Attribute.ImportanteSugerencia de configuración: Se recomienda habilitar el interruptor Status de la cookie de seguimiento. De lo contrario, los módulos de protección, como la protección contra inundaciones HTTP y la protección contra escaneos, podrían no funcionar correctamente.
Limitación de los grupos de objetos protegidos: Para los objetos protegidos que pertenecen a un grupo de objetos protegidos, Tracking Cookie se habilita de forma predeterminada. No es posible deshabilitar Tracking Cookie ni habilitar Secure Attribute para estos objetos protegidos.
Regla efectiva: Si una solicitud coincide con varios objetos protegidos y Tracking Cookie o Secure Attribute está habilitado como mínimo en uno de ellos, la función se habilita para todos los objetos protegidos coincidentes.
Limitación: Actualmente no es posible configurar el atributo SameSite de la cookie
acw_tc.
-
Slider CAPTCHA Cookie Después de que un usuario supera un desafío de control deslizante, WAF emite de forma predeterminada una cookie llamada
acw_sc__v3para registrar la verificación. Si desea emitir esta cookie solo para solicitudes HTTPS, habilite Secure Attribute.ImportanteHabilitar Secure Attribute para la cookie del control deslizante puede afectar el funcionamiento normal de esta función en sitios HTTP.
Para los objetos protegidos que pertenecen a un grupo de objetos protegidos, Secure Attribute se deshabilita de forma predeterminada y no es posible habilitarlo.
-
-
Custom Response Header (solo en modo de registro CNAME)
En la pestaña WAF Link Settings, configure Custom Response Header. Es posible agregar hasta cinco encabezados. Si el valor de Header Name de un encabezado de respuesta personalizado coincide con el nombre de un encabezado de respuesta del servidor de origen, el valor del encabezado original se reemplaza por el Header Value que configure aquí.
-
Decode Settings
Configure los ajustes de la pestaña Decode Settings. Para obtener más información, consulte Appendix: Decoding settings.
-
User Identification
Configure los ajustes en la pestaña User Identification. Se admiten hasta cinco reglas por cada objeto protegido, ordenadas según su prioridad.
-
La información de identidad del usuario se extrae de las siguientes ubicaciones:
Query String
Body
Cookie
Header
-
Formatos de cuenta disponibles:
Plaintext Authentication: por ejemplo, email***@qq.com.
JWT Authentication: un JWT suele encontrarse en un header y transporta información del usuario. El formato habitual es
Authorization: Bearer {Token}. Si el token es un JWT, especifique el campo de la cuenta dentro del payload decodificado.Basic Authentication: este método también se ubica normalmente en un header. Su formato común es
Authorization: Basic {Token}.
-
-
Action Validity Settings
En la pestaña Action Validity Settings, configure a continuación los parámetros indicados:
JS Challenge TTL: periodo de validez del resultado de verificación cuando Rule Action tiene el valor JavaScript Validation.
Dynamic Token Validity: tiempo durante el cual el resultado de verificación sigue vigente en el modo Token-based Authentication cuando usted use Bot Management to protect web services.
CAPTCHA Expiration Time: lapso de validez del resultado de verificación si Rule Action corresponde a CAPTCHA.
Gestión de grupos de objetos protegidos
Si necesita aplicar las mismas reglas de protección a varios objetos protegidos, utilice los grupos de objetos protegidos para gestionarlos de forma centralizada.
En el panel de navegación izquierdo de la consola de WAF, seleccione .
En la pestaña Protected Object Groups, haga clic en Create.
-
En el cuadro de diálogo Create Protected Object Group, introduzca un valor en Protected object group name, seleccione Associate with Protected Object, agregue información en Remarks y, a continuación, haga clic en OK.
Nota-
La lista Available Objects
Associate with Protected Object, solo incluye los objetos protegidos que cumplen con las siguientes condiciones: no pertenecen a ningún grupo de objetos protegidos y tienen aplicada únicamente la plantilla de protección predeterminada o ninguna plantilla de protección.
Un objeto protegido que ya pertenece a un grupo no se puede agregar a otro. Primero debe eliminarlo del grupo original para poder incluirlo en uno distinto.
-
Al crear una plantilla de protección, establezca Apply To en Protected Object Groups para aplicar la plantilla a todos los objetos del grupo.
Operaciones diarias
Gestión de objetos protegidos
Consultar las reglas de protección de un objeto protegido: En la columna Actions del objeto protegido correspondiente, haga clic en View Protection Rule. La página Core Web Protection muestra las plantillas de protección (reglas de protección configuradas) asociadas al objeto protegido.
Agregar un objeto protegido a un grupo de objetos protegidos: En la columna Actions del objeto protegido correspondiente, haga clic en
> Add to Protected Object Group. También puede seleccionar varios objetos protegidos y hacer clic en Add to Protected Object Group debajo de la lista.Consultar los registros de un objeto protegido: Si habilitó Log Service, haga clic en
> View Logs dentro de la columna Actions del objeto protegido correspondiente.Eliminar un objeto protegido: En la columna Actions del objeto correspondiente, haga clic en Delete. Solo es posible eliminar los objetos protegidos que se agregaron manualmente. Para quitar los objetos protegidos generados automáticamente, debe usar la opción Remove sobre el recurso.
Gestión de grupos de objetos protegidos
Modificar los objetos protegidos de un grupo: En la pestaña Protected Object Groups, haga clic en Edit dentro de la columna Actions del grupo correspondiente para agregar o quitar objetos protegidos. Cuando se quita un objeto protegido de un grupo, se le aplica automáticamente la plantilla de protección predeterminada.
Modificar las reglas de protección de un grupo: En la pestaña Protected Object Groups, haga clic en Configure Rule dentro de la columna Actions del grupo correspondiente para consultar y modificar la plantilla de protección asociada al grupo.
Eliminar un grupo de objetos protegidos: En la pestaña Protected Object Groups, busque el grupo que desea eliminar y haga clic en Delete dentro de la columna Actions.
Cuotas y límites
Límites en la cantidad de objetos protegidos: El número de objetos protegidos, de grupos de objetos protegidos y de objetos protegidos que se pueden agregar a un solo grupo varía según la edición de WAF. Para obtener más información, consulte WAF editions. Acceda a la página de objetos protegidos para consultar la cantidad de objetos protegidos disponibles. Si agotó la cuota, elimine objetos protegidos o upgrade su edición de WAF.
Regla de reserva de objetos protegidos: En las instancias de WAF con modelo de suscripción, WAF reserva cuotas para los nombres de dominio gratuitos incluidos en su edición y para los nombres de dominio adicionales que haya comprado. Por ejemplo, si cuenta con una instancia de WAF Pro de suscripción que incluye 5 nombres de dominio gratuitos y admite 600 objetos protegidos, y compra 2 Additional Domains, WAF reserva 7 (5 + 2) objetos protegidos. Esto le deja una cuota de 593 (600 - 7) objetos protegidos adicionales.
Límites de configuración de los objetos protegidos: Las instancias de Microservices Engine (MSE) y los nombres de dominio personalizados de Function Compute (FC) agregados como servicios en la nube no son compatibles con Cookie Settings. Las instancias de FC, MSE agregadas como servicios en la nube no admiten Decode Settings.
Configuración de decodificación
Análisis sintáctico de clave-valor
Base64 Decoding
Key-value parsing
-
JSON Data Parsing
Descripción: el módulo de análisis JSON procesa y reestructura los datos de JavaScript Object Notation (JSON) conforme al RFC 7159. Este módulo gestiona la sintaxis JSON, incluidos los objetos de clave-valor, las matrices, las cadenas y los números. El proceso abarca la validación de sintaxis, la conversión de tipos de datos, el procesamiento de estructuras anidadas y la decodificación de secuencias de escape Unicode. Estandarizar el formato JSON mejora la capacidad de las reglas de WAF para detectar contenido malicioso en cargas útiles JSON.
Ejemplo: para la entrada
{"Hello":"World"}, el análisis JSON extrae lakeycomoHelloy elvaluecomoWorld.
-
XML Data Parsing
Descripción: el módulo de análisis XML procesa y reestructura los datos de Extensible Markup Language (XML) conforme a la especificación XML (recomendación del W3C). Este módulo admite el análisis integral de las estructuras de documentos XML, incluidos los elementos, los atributos, el contenido de texto, las secciones CDATA y las instrucciones de procesamiento. El proceso incluye la validación de sintaxis, la resolución de referencias de entidades, el procesamiento de espacios de nombres y la estandarización de la estructura del documento. Estandarizar el formato XML mejora la capacidad de las reglas de WAF para detectar contenido malicioso en cargas útiles XML.
Ejemplo: para la entrada
<Hello attr="desc"><![CDATA[World]]></Hello>, el análisis XML extrae lakeycomoHello, elvaluecomoWorld, lakey2comoHello.attry elvalue2comodesc.
-
Form Data Parsing
Descripción: el módulo de análisis de formularios procesa y reestructura los datos application/x-www-form-urlencoded conforme al RFC 1866. Este módulo admite el análisis integral de los datos de formularios HTML, incluidos los pares clave-valor, los parámetros de matriz, los campos de carga de archivos y las estructuras anidadas. El proceso abarca la decodificación de URL, el procesamiento de conjuntos de caracteres, el reconocimiento de separadores de parámetros y la conversión de tipos de datos. Estandarizar el formato de los datos de formulario mejora la capacidad de las reglas de WAF para detectar contenido malicioso en cargas útiles de formularios.
Ejemplo: para la entrada
Hello=World, el análisis de formularios extrae lakeycomoHelloy elvaluecomoWorld.
-
Multipart Data Parsing
Descripción: el módulo de análisis multipart procesa y reestructura los datos multipart/form-data conforme al RFC 2046. Este módulo admite el análisis integral de cargas de archivos HTTP y datos de formularios complejos, incluidos los campos de archivo, los campos de texto, los delimitadores de límite y las estructuras anidadas. El proceso abarca la detección de límites, el análisis de campos, la extracción de contenido de archivos y la conversión de codificación. Estandarizar el formato multipart mejora la capacidad de las reglas de WAF para detectar contenido malicioso en cargas de archivos y cargas útiles de formularios complejos.
-
Ejemplo: para la siguiente entrada, el análisis multipart extrae la
keycomoHelloy elvaluecomoWorld.------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="Hello" World ------WebKitFormBoundary7MA4YWxkTrZu0gW--
-
GraphQL Parsing
Descripción: el módulo de análisis GraphQL procesa y reestructura los datos del lenguaje de consulta GraphQL conforme a su especificación. Este módulo admite el análisis integral de consultas GraphQL, definiciones de variables, argumentos y directivas, incluidas las selecciones de campos, los parámetros de consulta, las sustituciones de variables, los alias y las consultas anidadas. El proceso es compatible con el análisis de parámetros de URL, las cargas útiles JSON, las consultas GraphQL sin procesar y el formato de carga de archivos multipart. Estandarizar el formato GraphQL mejora la capacidad de las reglas de WAF para detectar contenido malicioso en cargas útiles GraphQL.
Ejemplo: para la consulta de entrada
HelloWorld{ desc(Hello:"World"){ Hello } }, el análisis GraphQL extrae lakeycomoHelloy elvaluecomoWorld.
Decodificación
Decoding
-
Base64 Decoding
Descripción: el motor de decodificación Base64 revierte la codificación Base64 definida en el RFC 4648. Este módulo procesa el conjunto de caracteres Base64 estándar (A-Z, a-z, 0-9, +, /) y el carácter de relleno (=). El proceso de decodificación incluye la validación de caracteres, el manejo del relleno, la alineación de bytes y las comprobaciones de integridad de datos para asegurar la precisión y confiabilidad de los datos binarios.
Ejemplo: la entrada
SGVsbG8gV29scmQhse decodifica comoHello World!.
-
HTML Entity Decoding
Descripción: el motor de decodificación de entidades HTML analiza sintácticamente las referencias de entidades de caracteres con base en la especificación HTML 5.2 (recomendación del W3C). Este módulo admite el procesamiento estandarizado de referencias de caracteres numéricas (&#x;) y entidades de caracteres con nombre (&).
Ejemplo: la entrada
Hello World!se decodifica comoHello World!.
-
PHP Deserialization
Descripción: el motor de deserialización de PHP revierte la función serialize() de PHP. Con base en el protocolo de serialización de PHP, este módulo analiza sintácticamente la sintaxis del formato serializado, incluidos los identificadores de tipo (como i, s, a y O), los metadatos de longitud y las estructuras de datos recursivas. El proceso incluye la validación de tipos, las comprobaciones de seguridad de memoria y la reconstrucción del grafo de objetos. Además, admite el análisis sintáctico completo de tipos escalares, tipos compuestos y la serialización de objetos.
Ejemplo: para la entrada
payload=O:5:"Hello":1:{s:4:"desc";s:6:"World!";}, la deserialización de PHP extrae lakeycomopayload.Hello.descy elvaluecorrespondiente comoWorld!.
-
Java Deserialization
Descripción: la deserialización de Java revierte ObjectInputStream con base en el protocolo de serialización de Java. Este módulo analiza sintácticamente el formato binario del flujo de serialización de Java, incluidos los descriptores de clase, los metadatos de campos y la información de estado del objeto. El proceso de decodificación sigue la especificación de serialización de la JVM y admite el análisis sintáctico recursivo de grafos de objetos complejos.
Ejemplo: para la entrada
rO0ABXNyABFqYXZhLnV0aWwuSGFzaE1hcAUH2sHDFmDRAwACRgAKbG9hZEZhY3RvckkACXRocmVzaG9sZHhwP0AAAAAAAAx3CAAAABAAAAABdAAFSGVsbG90AAZXb3JsZCF4, la deserialización de Java extrae la clase de Javajava.util.HashMap.
-
UTF-7 Decoding
Descripción: el motor de decodificación UTF-7 convierte codificaciones de caracteres de longitud variable según el RFC 2152. Este módulo procesa los marcadores de codificación UTF-7 (+/-) y las secuencias de caracteres Unicode codificadas en Base64. El algoritmo admite la transmisión de Unicode en entornos ASCII de 7 bits e incluye una máquina de estados de codificación, el cambio de conjuntos de caracteres y la compatibilidad con protocolos heredados. Por lo tanto, es adecuado para sistemas de correo electrónico y escenarios de transmisión de mensajes MIME.
Ejemplo: la entrada
+/v8 +AEgAZQBsAGwAbwAgAFcAbwByAGwAZAAh-se decodifica comoHello World!.
-
Unicode Decoding
Descripción: la decodificación Unicode es un proceso de conversión de codificación de caracteres basado en el estándar Unicode (ISO/IEC 10646). Este módulo analiza sintácticamente las secuencias de escape UTF-16 y admite la notación hexadecimal de cuatro bytes \uXXXX, así como el formato extendido \u{XXXXXX}. El proceso de decodificación sigue la especificación Unicode 15.0 para garantizar una codificación de caracteres estandarizada.
Ejemplo: para la entrada
\u0048\u0065\u006c\u006c\u006f\u0020\u0057\u006f\u0072\u006c\u0064\u0021, la salida después de la decodificación Unicode esHello World!.
-
URL Decoding
Descripción: la decodificación de URL revierte la codificación por porcentaje con base en el RFC 3986. Este mecanismo procesa la codificación de caracteres reservados, caracteres no ASCII y caracteres especiales en la sintaxis genérica de URI. El algoritmo de decodificación sigue la especificación del tipo MIME application/x-www-form-urlencoded y admite el análisis sintáctico estándar de los parámetros de solicitud HTTP.
Ejemplo: la entrada
Hello%20World%21se decodifica comoHello World!.
-
Hex Decoding
Descripción: la decodificación hexadecimal convierte una cadena hexadecimal en datos binarios con base en el RFC 4648. Este módulo utiliza el orden de bytes big-endian y admite el conjunto de caracteres hexadecimal estándar (0-9, A-F, a-f). El proceso de decodificación incluye la validación de entrada, la normalización de caracteres y la alineación de bytes.
Ejemplo: la entrada
\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21se decodifica comoHello World!.
-
Octal Decoding
Descripción: el motor de decodificación octal procesa las codificaciones de caracteres representadas por una barra invertida seguida de dígitos octales, como
\123. Con base en la tabla ASCII, este módulo convierte los números octales en sus caracteres correspondientes, admite el rango octal estándar de 0 a 377 (de 0 a 255 en decimal) y puede analizar sintácticamente por lotes las secuencias de escape octales en texto mixto.Ejemplo: la entrada
\110\145\154\154\157\040\127\157\162\154\144\041se decodifica comoHello World!.
Descompresión
Decompression
-
Gzip Decompression
Descripción: el motor de descompresión Gzip funciona con base en el RFC 1952 y utiliza el algoritmo DEFLATE. Este módulo procesa el encabezado del formato de archivo Gzip (número mágico 0x1f8b, método de compresión y banderas) y la suma de comprobación CRC32; además, descomprime los bloques de datos comprimidos. El algoritmo admite el procesamiento por flujo y la descompresión por lotes. También incluye la gestión de máquinas de estados, el procesamiento de archivos con múltiples miembros y mecanismos de recuperación de errores. Es adecuado para escenarios de transmisión web, archivado de archivos y compresión de datos.
Ejemplo: para los datos binarios de entrada
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(presentados en formato hexadecimal para facilitar su lectura), la descompresión Gzip genera la salidaHello World!.
Preprocesamiento
-
Comment Stripping
Descripción: el módulo de eliminación de comentarios reconoce y quita la sintaxis de comentarios con base en el estándar SQL y la sintaxis extendida de MySQL. Este módulo admite dos formatos de comentarios definidos por el estándar ANSI SQL: comentarios de una sola línea (-- seguidos de cualquier carácter hasta el final de la línea) y comentarios de varias líneas (cualquier secuencia de caracteres encerrada entre / /). También es compatible con la sintaxis de comentarios condicionales específica de MySQL (/! ... /). El proceso incluye el reconocimiento de marcadores de comentarios, el manejo de comentarios anidados, el análisis sintáctico de condiciones de versión y la validación de límites de sintaxis. Al eliminar el contenido de los comentarios, este módulo mejora la precisión de detección del motor de reglas de WAF para instrucciones SQL maliciosas y reduce el riesgo de que los atacantes evadan las reglas mediante comentarios.
Ejemplo: para la entrada
/*!40101 SET */@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT ;, la eliminación de comentarios genera la salida SET@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT ;.
-
Whitespace Compression
Descripción: el módulo de compresión de espacios en blanco normaliza los caracteres de espacio en blanco consecutivos. Este módulo detecta secuencias de caracteres de espacio en blanco consecutivos en la cadena de entrada y las comprime en un solo espacio. El proceso incluye el procesamiento unificado de espacios en blanco consecutivos al inicio, al final y en posiciones intermedias para garantizar la estandarización y consistencia del formato de texto.
Ejemplo: para la entrada
Hello World!, la compresión de espacios en blanco genera la salidaHello World!.