Ao configurar um modelo de proteção, aplique-o a um objeto protegido. O WAF cria automaticamente um objeto protegido para cada ativo integrado, portanto, a configuração manual geralmente é desnecessária. No entanto, se você tiver muitos ativos, regras de proteção complexas ou precisar de configurações avançadas (como decodificação específica, cookies ou cabeçalhos de resposta personalizados), configure manualmente os objetos protegidos ou grupos de objetos protegidos. Este tópico descreve como configurá-los e gerenciá-los para obter uma segurança eficiente e granular.
Conceitos principais
objeto protegido: Ao adicionar um nome de domínio ou instância de serviço em nuvem ao WAF, o sistema cria automaticamente um objeto protegido correspondente. Para utilizar um modelo de proteção, selecione um objeto protegido como alvo.
grupo de objetos protegidos: Agrupe vários objetos protegidos em um grupo de objetos protegidos para gerenciamento centralizado. Cada objeto protegido pode pertencer a apenas um grupo de objetos protegidos.
Pré-requisitos
Antes de começar, verifique se os seguintes requisitos foram atendidos:
Requisito de integração: Adicione seu serviço web ao WAF para gerar um objeto protegido. Caso ainda não tenha integrado seu serviço, consulte Visão geral da integração.
Registro ICP: Para adicionar um objeto protegido referente a um nome de domínio hospedado em servidor na China continental, o domínio precisa ter um registro ICP válido. Para mais informações, consulte Como consultar as informações de registro ICP de um nome de domínio?
Adicionar um objeto protegido
Ao adicionar um recurso ao WAF, o sistema cria automaticamente um objeto protegido para ele. Normalmente, não é necessário adicionar um manualmente. Contudo, adicione manualmente um nome de domínio como objeto protegido nos seguintes cenários:
Cenário de serviço em nuvem: Vários nomes de domínio apontam para a mesma instância de serviço em nuvem e exigem regras de proteção distintas para cada domínio.
Cenário de integração SDK de nuvem híbrida: Diversos nomes de domínio resolvem para a mesma instância de cluster e exigem configurações de proteção diferentes por domínio.
-
Log on to the Web Application Firewall 3.0 console. From the top menu bar, select the resource group and region (Chinese Mainland or Outside Chinese Mainland) for the WAF instance.
-
In the navigation pane on the left, choose .
Na aba Protected Objects, clique em Add Protected Object.
-
Na caixa de diálogo Add Protected Object, configure os parâmetros conforme o Protected Object Type e clique em OK.
Cloud Service
Parâmetro
Descrição
Domain Name
Insira o nome de domínio que deseja proteger. Use um domínio com correspondência exata, como
www.aliyundoc.com, ou um domínio curinga, como*.aliyundoc.com.-
Regras de correspondência de domínio curinga:
-
Um curinga corresponde apenas a subdomínios no mesmo nível. Por exemplo,
*.aliyundoc.comcorresponde awww.aliyundoc.comeexample.aliyundoc.com, mas não awww.example.aliyundoc.com. -
Quando aplicado a um nome de domínio de segundo nível, como
*.aliyundoc.com, o curinga também corresponde ao próprio domínio de segundo nível,aliyundoc.com. -
Quando aplicado a um nome de domínio de terceiro nível, como
*.example.aliyundoc.com, o curinga não corresponde ao próprio domínio de terceiro nível,example.aliyundoc.com.
-
-
Regra de prioridade: Se uma solicitação corresponder tanto a um domínio exato quanto a um domínio curinga, as regras do domínio exato terão precedência.
Cloud Service
Selecione o tipo de instância de serviço em nuvem associado ao nome de domínio. Valores válidos:
-
ALB: Application Load Balancer.
-
CLB4: Classic Load Balancer com listener TCP.
-
CLB7: Classic Load Balancer com listener HTTP/HTTPS.
-
ECS: Elastic Compute Service.
-
NLB: Network Load Balancer.
instância
Selecione o ID da instância ALB. Este parâmetro é obrigatório apenas se você definir Cloud Service como ALB.
Add to Protected Object Group
Adicione o objeto protegido a um grupo de objetos protegidos para gerenciar as regras de proteção de forma centralizada.
Após adicionar um objeto protegido a um grupo, configure as regras de proteção somente para o grupo. Não será mais possível configurar regras individuais para esse objeto protegido.Resource Group
Adicione o objeto protegido a um grupo de recursos para simplificar o gerenciamento de recursos e a configuração de permissões. Se não houver requisitos específicos, selecione Default Resource Group. Para mais informações, consulte O que é um grupo de recursos?.
Hybrid Cloud SDK Integration
Parâmetro
Descrição
Protected Object Name
Insira um nome fácil de identificar.
Domain Name/IP Address
Insira o nome de domínio que deseja proteger. Use um domínio com correspondência exata, como
www.aliyundoc.com, ou um domínio curinga, como*.aliyundoc.com.Nota-
Regra de correspondência de domínio curinga: Um domínio curinga corresponde apenas a subdomínios no mesmo nível. Por exemplo,
*.aliyundoc.comcorresponde awww.aliyundoc.comeexample.aliyundoc.com, mas não aaliyundoc.comouwww.example.aliyundoc.com. -
Regra de prioridade: Se uma solicitação corresponder tanto a um domínio exato quanto a um domínio curinga, as regras de proteção do domínio exato terão precedência.
URL
Insira o caminho da URL que deseja proteger.
Add to Protected Object Group
Adicione o objeto protegido a um grupo de objetos protegidos para gerenciar as regras de proteção de forma centralizada.
Após adicionar um objeto protegido a um grupo, configure as regras de proteção somente para o grupo. Não será mais possível configurar regras individuais para esse objeto protegido.Resource Group
Adicione o objeto protegido a um grupo de recursos para simplificar o gerenciamento de recursos e a configuração de permissões. Se não houver requisitos específicos, selecione Default Resource Group. Para mais informações, consulte O que é um grupo de recursos?.
-
Configurações avançadas
O WAF oferece as seguintes configurações avançadas. Para personalizar as definições de um objeto protegido conforme suas necessidades de negócios e políticas de segurança, localize o objeto desejado e clique em Settings na coluna Actions.
|
Parâmetro |
Descrição |
|
Se um proxy de camada 7, como uma CDN, estiver implantado à frente do WAF, configure a opção Obtain Actual IP Address of Client. Isso garante que o WAF obtenha os endereços IP reais dos clientes para análise de segurança e recursos como a exibição do Attacker IP Address nos Security Reports. |
|
|
Ao utilizar módulos de proteção como HTTP Flood Protection e Scan Protection, ou ao definir uma ação de regra como CAPTCHA, o WAF adiciona um cookie de rastreamento e verificação às respostas. Configure o status de emissão e o atributo Secure do cookie para atender aos requisitos de segurança e compatibilidade. |
|
|
Para nomes de domínio adicionados no modo de registro CNAME, adicione cabeçalhos personalizados às respostas do cliente para reforço de segurança, controle de políticas ou depuração. |
|
|
O WAF analisa dados em formatos como JSON, XML e Form, além de decodificar dados codificados com Base64 e entidades HTML. Isso permite detectar tráfego malicioso oculto por múltiplas camadas de codificação ou compressão. |
|
|
O WAF extrai informações de identidade do usuário, como nomes de usuário, tokens e corpos JWT das solicitações. Módulos como Scan Protection, Bot Management e Custom Rule utilizam essas informações para controle de segurança granular no nível da conta. |
|
|
Após um cliente passar por uma JavaScript Validation, CAPTCHA ou Token-based Authentication, o WAF permite solicitações subsequentes por 1.800 segundos (30 minutos) por padrão, sem exigir novo desafio. Defina esse tempo de expiração entre 5 e 1.800 segundos. Após esse período, o cliente precisará passar pelo desafio novamente na próxima solicitação. |
-
Configure Client IP Address
Na aba WAF Link Settings, configure o parâmetro Is a Layer 7 proxy such as Anti-DDoS Proxy or CDN deployed in front of WAF. Para mais informações, consulte Obter endereços IP reais do cliente.
NotaPara nomes de domínio adicionados no modo de registro CNAME e para instâncias ECS, CLB e NLB adicionadas como serviços em nuvem, não repita esta configuração caso já a tenha concluído durante a integração do ativo.
-
Cookie Settings
Na aba WAF Link Settings, configure o Tracking Cookie e o Slider CAPTCHA Cookie.
-
Tracking Cookie Ao usar recursos como proteção contra flood HTTP e proteção contra varredura, o WAF emite por padrão um cookie chamado
acw_tcpara identificar e rastrear o comportamento de acesso do cliente. Utilize o interruptor Status para ativar ou desativar o Tracking Cookie. Para emitir este cookie apenas em solicitações HTTPS, ative o Secure Attribute.ImportanteSugestão de configuração: Recomendamos manter o interruptor Status do cookie de rastreamento ativado. Caso contrário, módulos de proteção como proteção contra flood HTTP e proteção contra varredura podem não funcionar corretamente.
Limitação de grupo de objetos protegidos: Para objetos protegidos pertencentes a um grupo, o Tracking Cookie vem ativado por padrão. Não é possível desativar o Tracking Cookie nem ativar o Secure Attribute para esses objetos.
Regra efetiva: Se uma solicitação corresponder a vários objetos protegidos e o Tracking Cookie ou o Secure Attribute estiver ativado em pelo menos um deles, o recurso será habilitado para todos os objetos protegidos correspondentes.
-
Slider CAPTCHA Cookie Depois que um usuário passa por um desafio de slider, o WAF emite por padrão um cookie chamado
acw_sc__v3para registrar a verificação. Para emitir este cookie apenas em solicitações HTTPS, ative o Secure Attribute.ImportanteAtivar o Secure Attribute para o cookie do slider pode afetar o funcionamento normal do recurso de slider em sites HTTP.
Para objetos protegidos que fazem parte de um grupo de objetos protegidos, o Secure Attribute vem desativado por padrão e não pode ser ativado.
-
-
Custom Response Header (apenas modo de registro CNAME)
Na aba WAF Link Settings, configure o Custom Response Header. Adicione até cinco cabeçalhos. Se o Header Name de um cabeçalho de resposta personalizado for igual ao nome de um cabeçalho de resposta do servidor de origem, o valor do cabeçalho original será substituído pelo Header Value configurado aqui.
-
Decode Settings
Configure as opções na aba Decode Settings. Para mais informações, consulte Apêndice: Configurações de decodificação.
-
User Identification
Configure as opções na aba User Identification. Defina até cinco regras para cada objeto protegido, ordenadas por prioridade.
-
Extraia informações de identidade do usuário dos seguintes locais:
Query String
Body
Cookie
Header
-
Formato da conta:
Plaintext Authentication: Por exemplo, email***@qq.com.
JWT Authentication: Geralmente encontrado em um cabeçalho, um JWT pode transportar informações do usuário. O formato comum é
Authorization: Bearer {Token}. Se o token for um JWT, especifique o campo da conta no payload decodificado.Basic Authentication: Geralmente encontrado em um cabeçalho. O formato comum é
Authorization: Basic {Token}.
-
-
Action Validity Settings
Na aba Action Validity Settings, configure os seguintes parâmetros:
JS Challenge TTL: Período de validade do resultado da verificação quando a Rule Action é JavaScript Validation.
Dynamic Token Validity: Período de validade do resultado da verificação no modo de Token-based Authentication ao usar o Bot Management para proteger serviços web.
CAPTCHA Expiration Time: Período de validade do resultado da verificação quando a Rule Action é CAPTCHA.
Gerenciar grupos de objetos protegidos
Para aplicar as mesmas regras de proteção a vários objetos protegidos, utilize grupos de objetos protegidos para gerenciamento centralizado.
No painel de navegação à esquerda do console do WAF, escolha .
Na aba Protected Object Groups, clique em Create.
-
Na caixa de diálogo Create Protected Object Group, insira um Nome do grupo de objetos protegidos, selecione Associate with Protected Object, adicione Remarks e clique em OK.
NotaA lista Available Objects na seção Associate with Protected Object inclui apenas objetos protegidos que atendem às seguintes condições: não fazem parte de nenhum grupo de objetos protegidos e possuem apenas o modelo de proteção padrão ou nenhum modelo aplicado.
Um objeto protegido que já pertence a um grupo não pode ser adicionado a outro. Remova-o do grupo original antes de adicioná-lo a um novo grupo.
Ao criar um modelo de proteção, defina Apply To como Protected Object Groups para aplicar o modelo a todos os objetos do grupo.
Operações diárias
Gerenciar objetos protegidos
Visualizar as regras de proteção de um objeto protegido: Na coluna Actions do objeto protegido alvo, clique em View Protection Rule. A página Core Web Protection exibe os modelos de proteção (regras configuradas) associados ao objeto protegido.
Adicionar um objeto protegido a um grupo: Na coluna Actions do objeto protegido alvo, clique em
> Add to Protected Object Group. Também é possível selecionar vários objetos protegidos e clicar em Add to Protected Object Group abaixo da lista.Visualizar os logs de um objeto protegido: Se o Log Service estiver ativado, clique em
> View Logs na coluna Actions do objeto protegido alvo.Excluir um objeto protegido: Na coluna Actions do objeto alvo, clique em Delete. Apenas objetos protegidos adicionados manualmente podem ser excluídos. Para remover objetos protegidos gerados automaticamente, execute a ação Remove no ativo.
Gerenciar grupos de objetos protegidos
Modificar os objetos protegidos em um grupo: Na aba Protected Object Groups, clique em Edit na coluna Actions do grupo alvo para adicionar ou remover objetos protegidos. Se um objeto protegido for removido de um grupo, o modelo de proteção padrão será aplicado automaticamente a ele.
Modificar as regras de proteção de um grupo: Na aba Protected Object Groups, clique em Configure Rule na coluna Actions do grupo alvo para visualizar e modificar o modelo de proteção associado ao grupo.
Excluir um grupo de objetos protegidos: Na aba Protected Object Groups, localize o grupo que deseja excluir e clique em Delete na coluna Actions.
Cotas e limites
Limites na quantidade de objetos protegidos: O número de objetos protegidos, grupos de objetos protegidos e objetos que podem ser adicionados a um único grupo varia conforme a edição do WAF. Para mais informações, consulte Edições do WAF. Acesse a página de Objetos protegidos para verificar a quantidade de objetos protegidos disponíveis. Se a cota for atingida, exclua objetos protegidos ou faça upgrade da sua edição do WAF.
Regra de reserva de objetos protegidos: Para instâncias WAF por assinatura, o sistema reserva cotas para os nomes de domínio gratuitos incluídos na sua edição do WAF e para quaisquer domínios adicionais adquiridos. Por exemplo, se você possui uma instância WAF Pro por assinatura que inclui 5 nomes de domínio gratuitos e suporta 600 objetos protegidos, e adquire 2 Additional Domains, o WAF reservará 7 (5 + 2) objetos protegidos. Isso deixa uma cota restante de 593 (600 - 7) objetos protegidos adicionais.
Limites de configuração para objetos protegidos: Instâncias do Microservices Engine (MSE) e nomes de domínio personalizados do Function Compute (FC) adicionados como serviços em nuvem não suportam Cookie Settings. Instâncias FC, MSE adicionadas como serviços em nuvem não suportam Decode Settings.
Configurações de decodificação
Ao adicionar uma instância ALB como serviço em nuvem, a Base64 Decoding vem desativada por padrão. Ative-a conforme as necessidades do seu negócio.
Para integração SDK de nuvem híbrida, atualize o agente para a versão 4.1.0 ou posterior para que as configurações de decodificação tenham efeito.
Análise de chave-valor
-
JSON Data Parsing
Descrição: O módulo de análise JSON processa e reestrutura dados JavaScript Object Notation (JSON) de acordo com a RFC 7159. O módulo lida com sintaxe JSON, incluindo objetos chave-valor, arrays, strings e números. O processo inclui validação de sintaxe, conversão de tipos de dados, processamento de estruturas aninhadas e decodificação de sequências de escape Unicode. Padronizar o formato JSON melhora a capacidade das regras do WAF de detectar conteúdo malicioso em payloads JSON.
Exemplo: Para a entrada
{"Hello":"World"}, a análise JSON extrai akeycomoHelloe ovaluecomoWorld.
-
XML Data Parsing
Descrição: O módulo de análise XML processa e reestrutura dados Extensible Markup Language (XML) conforme a especificação XML (Recomendação W3C). O módulo suporta análise abrangente de estruturas de documentos XML, incluindo elementos, atributos, conteúdo de texto, seções CDATA e instruções de processamento. O processo inclui validação de sintaxe, resolução de referências de entidade, processamento de namespace e padronização da estrutura do documento. Padronizar o formato XML melhora a capacidade das regras do WAF de detectar conteúdo malicioso em payloads XML.
Exemplo: Para a entrada
<Hello attr="desc"><![CDATA[World]]></Hello>, a análise XML extrai akeycomoHello, ovaluecomoWorld, akey2comoHello.attre ovalue2comodesc.
-
Form Data Parsing
Descrição: O módulo de análise de formulário processa e reestrutura dados application/x-www-form-urlencoded de acordo com a RFC 1866. O módulo suporta análise abrangente de dados de formulários HTML, incluindo pares chave-valor, parâmetros de array, campos de upload de arquivo e estruturas aninhadas. O processo inclui decodificação de URL, processamento de conjunto de caracteres, reconhecimento de separadores de parâmetros e conversão de tipos de dados. Padronizar o formato de dados de formulário melhora a capacidade das regras do WAF de detectar conteúdo malicioso em payloads de formulário.
Exemplo: Para a entrada
Hello=World, a análise de formulário extrai akeycomoHelloe ovaluecomoWorld.
-
Multipart Data Parsing
Descrição: O módulo de análise multipart processa e reestrutura dados multipart/form-data de acordo com a RFC 2046. O módulo suporta análise abrangente de uploads de arquivos HTTP e dados de formulários complexos, incluindo campos de arquivo, campos de texto, delimitadores de limite e estruturas aninhadas. O processo inclui detecção de limites, análise de campos, extração de conteúdo de arquivo e conversão de codificação. Padronizar o formato multipart melhora a capacidade das regras do WAF de detectar conteúdo malicioso em uploads de arquivos e payloads de formulários complexos.
-
Exemplo: Para a seguinte entrada, a análise multipart extrai a
keycomoHelloe ovaluecomoWorld.------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="Hello" World ------WebKitFormBoundary7MA4YWxkTrZu0gW--
-
GraphQL Parsing
Descrição: O módulo de análise GraphQL processa e reestrutura dados da linguagem de consulta GraphQL conforme a especificação GraphQL. O módulo suporta análise abrangente de consultas GraphQL, definições de variáveis, argumentos e diretivas, incluindo seleções de campo, parâmetros de consulta, substituições de variáveis, aliases e consultas aninhadas. O processo suporta análise de parâmetros de URL, payloads JSON, consultas GraphQL brutas e o formato de upload de arquivos multipart. Padronizar o formato GraphQL melhora a capacidade das regras do WAF de detectar conteúdo malicioso em payloads GraphQL.
Exemplo: Para a consulta de entrada
HelloWorld{ desc(Hello:"World"){ Hello } }, a análise GraphQL extrai akeycomoHelloe ovaluecomoWorld.
Decodificação
-
Base64 Decoding
Descrição: O mecanismo de decodificação Base64 reverte a codificação Base64 conforme definido na RFC 4648. Este módulo lida com o conjunto de caracteres Base64 padrão (A-Z, a-z, 0-9, +, /) e o caractere de preenchimento (=). O processo de decodificação inclui validação de caracteres, tratamento de preenchimento, alinhamento de bytes e verificações de integridade de dados para garantir a precisão e confiabilidade dos dados binários.
Exemplo: A entrada
SGVsbG8gV29scmQhé decodificada paraHello World!.
-
HTML Entity Decoding
Descrição: O mecanismo de decodificação de entidades HTML analisa referências de entidades de caracteres com base na especificação HTML 5.2 (Recomendação W3C). Este módulo suporta processamento padronizado de referências numéricas de caracteres (&#x;) e entidades de caracteres nomeadas (&).
Exemplo: A entrada
Hello World!é decodificada paraHello World!.
-
PHP Deserialization
Descrição: O mecanismo de desserialização PHP reverte a função serialize() do PHP. Com base no protocolo de serialização PHP, este módulo analisa a sintaxe do formato serializado, incluindo identificadores de tipo (como i, s, a e O), metadados de comprimento e estruturas de dados recursivas. O processo inclui validação de tipo, verificações de segurança de memória e reconstrução de gráfico de objetos, suportando análise completa de tipos escalares, tipos compostos e serialização de objetos.
Exemplo: Para a entrada
payload=O:5:"Hello":1:{s:4:"desc";s:6:"World!";}, a desserialização PHP extrai akeycomopayload.Hello.desce ovaluecorrespondente comoWorld!.
-
Java Deserialization
Descrição: A desserialização Java reverte o ObjectInputStream com base no protocolo de serialização Java. Este módulo analisa o formato binário do fluxo de serialização Java, incluindo descritores de classe, metadados de campo e informações de estado do objeto. O processo de decodificação segue a especificação de serialização JVM e suporta análise recursiva de gráficos de objetos complexos.
Exemplo: Para a entrada
rO0ABXNyABFqYXZhLnV0aWwuSGFzaE1hcAUH2sHDFmDRAwACRgAKbG9hZEZhY3RvckkACXRocmVzaG9sZHhwP0AAAAAAAAx3CAAAABAAAAABdAAFSGVsbG90AAZXb3JsZCF4, a desserialização Java extrai a classe Javajava.util.HashMap.
-
UTF-7 Decoding
Descrição: O mecanismo de decodificação UTF-7 converte codificações de caracteres de comprimento variável de acordo com a RFC 2152. Este módulo processa marcadores de codificação UTF-7 (+/-) e sequências de caracteres Unicode codificadas em Base64. O algoritmo suporta transmissão Unicode em ambientes ASCII de 7 bits e inclui uma máquina de estados de codificação, troca de conjuntos de caracteres e compatibilidade com protocolos legados. Isso o torna adequado para sistemas de e-mail e cenários de transmissão de mensagens MIME.
Exemplo: A entrada
+/v8 +AEgAZQBsAGwAbwAgAFcAbwByAGwAZAAh-é decodificada paraHello World!.
-
Unicode Decoding
Descrição: A decodificação Unicode é um processo de conversão de codificação de caracteres baseado no padrão Unicode (ISO/IEC 10646). Este módulo analisa sequências de escape UTF-16, suportando a notação hexadecimal de quatro bytes \uXXXX e o formato estendido \u{XXXXXX}. O processo de decodificação segue a especificação Unicode 15.0 para garantir a codificação padronizada de caracteres.
Exemplo: Para a entrada
\u0048\u0065\u006c\u006c\u006f\u0020\u0057\u006f\u0072\u006c\u0064\u0021, a saída após a decodificação Unicode éHello World!.
-
URL Decoding
Descrição: A decodificação de URL reverte a codificação percentual com base na RFC 3986. Este mecanismo processa a codificação de caracteres reservados, caracteres não ASCII e caracteres especiais na sintaxe genérica de URI. O algoritmo de decodificação segue a especificação do tipo MIME application/x-www-form-urlencoded e suporta análise padrão de parâmetros de solicitação HTTP.
Exemplo: A entrada
Hello%20World%21é decodificada paraHello World!.
-
Hex Decoding
Descrição: A decodificação hexadecimal converte uma string hexadecimal em dados binários com base na RFC 4648. Este módulo usa ordem de bytes big-endian e suporta o conjunto de caracteres hexadecimais padrão (0-9, A-F, a-f). O processo de decodificação inclui validação de entrada, normalização de caracteres e alinhamento de bytes.
Exemplo: A entrada
\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21é decodificada paraHello World!.
-
Octal Decoding
Descrição: O mecanismo de decodificação octal processa codificações de caracteres representadas por uma barra invertida seguida de dígitos octais, como
\123. Com base na tabela ASCII, este módulo converte números octais em seus caracteres correspondentes, suporta o intervalo octal padrão de 0-377 (0-255 em decimal) e pode analisar sequências de escape octais em texto misto em lotes.Exemplo: A entrada
\110\145\154\154\157\040\127\157\162\154\144\041é decodificada paraHello World!.
Descompressão
-
Gzip Decompression
Descrição: O mecanismo de descompressão Gzip opera com base na RFC 1952 e utiliza o algoritmo DEFLATE. Este módulo processa o cabeçalho do formato de arquivo Gzip (número mágico 0x1f8b, método de compressão e sinalizadores), soma de verificação CRC32 e descompacta blocos de dados comprimidos. O algoritmo suporta processamento de fluxo e descompressão em lote, e inclui gerenciamento de máquina de estados, processamento de arquivos multi-membros e mecanismos de recuperação de erros. É adequado para transmissão web, arquivamento de arquivos e cenários de compressão de dados.
Exemplo: Para os dados binários 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(apresentados em formato hexadecimal para legibilidade), a descompressão Gzip produz a saídaHello World!.
Pré-processamento
-
Comment Stripping
Descrição: O módulo de remoção de comentários reconhece e remove sintaxe de comentários com base no padrão SQL e na sintaxe estendida do MySQL. Este módulo suporta dois formatos de comentários definidos pelo padrão ANSI SQL: comentários de linha única (-- seguidos por quaisquer caracteres até o final da linha) e comentários de várias linhas (qualquer sequência de caracteres delimitada por / /). Também é compatível com a sintaxe de comentários condicionais específica do MySQL (/! ... /). O processo inclui reconhecimento de marcadores de comentário, tratamento de comentários aninhados, análise de condições de versão e validação de limites de sintaxe. Ao remover o conteúdo dos comentários, este módulo melhora a precisão de detecção do mecanismo de regras do WAF para instruções SQL maliciosas e reduz o risco de invasores contornarem regras usando comentários.
Exemplo: Para a entrada
/*!40101 SET */@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT ;, a remoção de comentários produz a saída SET@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT ;.
-
Whitespace Compression
Descrição: O módulo de compressão de espaços em branco normaliza caracteres de espaço em branco consecutivos. Este módulo detecta sequências de caracteres de espaço em branco consecutivos na string de entrada e os comprime em um único espaço. O processo inclui tratamento unificado de espaços em branco consecutivos iniciais, finais e intermediários para garantir a padronização e consistência do formato de texto.
Exemplo: Para a entrada
Hello World!, a compressão de espaços em branco produz a saídaHello World!.