---
name: azion-aplique-um-waf-rule-set-a-um-cookie-especifico
description: >-
  Rode dois WAF rule sets em um firewall e pontue as requisições que carregam um cookie escolhido contra o rule set que guarda uma exceção.
---

# Aplique um WAF rule set a um cookie específico

Você pode pontuar as requisições que carregam um cookie escolhido contra um rule set diferente do [Web Application Firewall (WAF)](/pt-br/documentacao/plataforma/firewall/#waf), a partir do Azion Console. Use essa configuração quando usuários autenticados, ou uma ferramenta de terceiros integrada, precisarem de uma política que o restante do seu tráfego não tem.

A configuração carrega três objetos:

- Um rule set primário pontua todas as requisições que o firewall recebe.
- Um rule set secundário carrega uma exceção para uma regra interna no header `Cookie`.
- Duas regras do [Rules Engine for Firewall](/pt-br/documentacao/plataforma/firewall/rules-engine/) selecionam entre eles.

Para o modelo de pontuação por trás deles, consulte [Score e modos](/pt-br/documentacao/plataforma/firewall/waf/score-e-modos/).

---

## Pré-requisitos

- Um firewall com o módulo WAF ativado. Consulte [Defina as configurações principais de um firewall](/pt-br/documentacao/guias/seguranca-de-aplicacoes/firewall-e-waf/firewall-definir-main-settings/).
- Um workload vinculado a esse firewall. Consulte [Vincule um firewall a um workload](/pt-br/documentacao/guias/seguranca-de-aplicacoes/firewall-e-waf/proteja-seu-dominio/).
- Acesso ao Azion Console. Consulte [Como acessar o Azion Console](/pt-br/documentacao/guias/plataforma/conta-e-billing/como-acessar-o-azion-console/).
- O nome e o valor do cookie que a sua aplicação emite.

---

## Crie o rule set primário

Esse rule set pontua o tráfego que não carrega o cookie. Para criá-lo:

1. **Abra a página WAF Rules**

   Acesse o [Azion Console](https://console.azion.com/) > **Edge Libraries** > **WAF Rules**.

2. **Selecione + WAF Rule**

3. **Nomeie o rule set**

   Na seção **General**, digite um **Name**. Por exemplo: `storefront-primary`.

4. **Defina as famílias de ameaças**

   Na seção **Threat Type Configuration**, defina a **Sensitivity** de cada família de ameaças.

5. **Mantenha o switch Active ativado**

6. **Salve o rule set**

O rule set aparece em **WAF Rules**. Ele ainda não pontua nada: um rule set inspeciona requisições somente depois que uma regra do Rules Engine o nomeia.

---

## Crie o rule set secundário

Esse rule set pontua o tráfego que carrega o cookie, então dê a ele a mesma política do primário. Para criá-lo:

1. **Selecione + WAF Rule**

   Ainda na página **WAF Rules**, comece um segundo rule set.

2. **Nomeie o rule set**

   Na seção **General**, digite um **Name**. Por exemplo: `storefront-cookie`.

3. **Repita as famílias de ameaças do rule set primário**

   Na seção **Threat Type Configuration**, defina cada **Sensitivity** com o valor que você deu ao rule set primário.

4. **Mantenha o switch Active ativado**

5. **Salve o rule set**

Os dois rule sets carregam agora a mesma política. A exceção da próxima seção é o que os torna diferentes.

---

## Adicione a exceção do cookie

Uma exceção impede que uma regra interna dispare em um lugar e a deixa disparando em todos os outros. O Azion Console chama uma exceção de allowed rule. Para adicionar uma ao rule set secundário:

1. **Abra o rule set secundário**

   Em **WAF Rules**, selecione o rule set que você criou na seção anterior.

2. **Selecione a aba Allowed Rules**

3. **Selecione + Allowed Rule**

4. **Selecione a regra a ser permitida**

   Em **Rule ID**, selecione a regra interna que o seu cookie aciona. Este exemplo usa `1005`, `Possible SQL Injection attack: MySQL keyword (|) found in Body, Path, Query String or Cookies`.

5. **Descreva a exceção**

   Em **Description**, explique por que essa regra é permitida.

6. **Defina o path**

   Em **Path**, digite `/` para cobrir o site inteiro, ou um path mais estreito para limitar a exceção.

7. **Restrinja a exceção ao header do cookie**

   Em **Condition**, selecione *Specific HTTP Header Name* e digite `cookie` no campo **Name**.

8. **Deixe Operator no valor padrão**

   **Operator** tem *contains* como padrão, que lê **Name** como uma string literal, e não como uma expressão regular.

9. **Salve a allowed rule**

A allowed rule aparece em **Allowed Rules**, que lista **Rule ID**, **Description**, **Path**, **Conditions** e **Status**.

> **Atenção**
>
> Reabra a allowed rule e confirme que **Condition** exibe *Specific HTTP Header Name* com `cookie` em **Name**. Uma condition que não nomeia header nenhum cobre todos os headers da requisição, e nada reporta a diferença: a allowed rule é salva de qualquer maneira, e a exceção fica mais ampla do que você pretendia.

Essa exceção relaxa uma regra interna para as requisições que o rule set secundário pontua. Todas as outras regras desse rule set continuam pontuando essas requisições.

Um cookie é fornecido pelo cliente e pode ser forjado. Quem descobrir o nome e o valor do cookie envia o mesmo header e alcança o rule set secundário. Mantenha a exceção restrita a um único **Rule ID** e ao **Path** mais estreito que a sua aplicação permitir.

---

## Aplique o rule set primário a todas as requisições

Uma regra do Rules Engine seleciona requisições pelos seus critérios, e o comportamento `Set WAF` dela nomeia um rule set e um modo. Uma regra carrega no máximo um comportamento `Set WAF`, e é por isso que essa configuração usa duas regras.

> **Atenção**
>
> Baseie o critério no request URI, nunca na query string. Um critério como `Request Args` *matches* `.*` não corresponde a uma requisição sem query string, então ele ignora silenciosamente todo `POST` cujo payload está no body.

Para criar a primeira regra:

1. **Abra o firewall vinculado ao seu workload**

   No Azion Console, vá em **Firewalls** e selecione esse firewall.

2. **Selecione a aba Rules Engine**

3. **Selecione + Rule**

4. **Nomeie a regra**

   Digite um nome para a regra. Por exemplo: `Apply storefront-primary`.

5. **Defina o critério**

   Na seção **Criteria**, selecione a variável `Request Uri`, o operador de comparação *starts with* e `/` como argumento.

6. **Adicione o comportamento Set WAF**

   Na seção **Behaviors**, selecione **Set WAF** e, em seguida, selecione o rule set primário.

7. **Selecione Blocking como modo**

8. **Salve a regra**

O firewall agora pontua todas as requisições que recebe contra o rule set primário.

---

## Aplique o rule set secundário às requisições com o cookie

Essa regra lê o header `Cookie` e envia as requisições que carregam o seu cookie para o rule set secundário.

Um firewall processa as regras do Rules Engine na ordem em que estão dispostas, então posicione esta regra depois da que você criou na seção anterior. Para criá-la:

1. **Selecione + Rule**

   Ainda na aba **Rules Engine**, comece uma segunda regra.

2. **Nomeie a regra**

   Digite um nome para a regra. Por exemplo: `Apply storefront-cookie`.

3. **Defina o critério**

   Na seção **Criteria**, selecione a variável `Header Cookie`, o operador de comparação *matches* e `partner-access=b7c1f2e4` como argumento.

4. **Informe o seu próprio cookie**

   Substitua `partner-access=b7c1f2e4` pelo cookie que a sua aplicação emite. O operador *matches* lê o argumento como uma expressão regular.

5. **Adicione o comportamento Set WAF**

   Na seção **Behaviors**, selecione **Set WAF** e, em seguida, selecione o rule set secundário.

6. **Selecione Blocking como modo**

7. **Salve a regra**

Uma requisição que carrega o cookie é pontuada contra o rule set secundário, de modo que a allowed rule não dispara no header `Cookie` dela, e todas as outras regras desse rule set continuam pontuando a requisição. Uma requisição sem o cookie é pontuada contra o rule set primário.

---

## Próximos passos

- [WAF Exceptions](/pt-br/documentacao/plataforma/firewall/waf/custom-allowed-rules.md): Cada campo que uma exceção carrega, as quinze conditions e a tela de Tuning.
- [Ajuste um WAF rule set](/pt-br/documentacao/guias/seguranca-de-aplicacoes/firewall-e-waf/tune-waf.md): Leia o que um rule set correspondeu e transforme um falso positivo em uma exceção.
- [Score e modos](/pt-br/documentacao/plataforma/firewall/waf/score-e-modos.md): O caminho que uma requisição percorre, o modelo de pontuação e o que cada modo faz.
- [Rules Engine for Firewall](/pt-br/documentacao/plataforma/firewall/rules-engine.md): Cada variável de criteria, operador de comparação e comportamento que uma regra de firewall pode carregar.
