# Configure regras de WAF para um cookie específico

Este guia implementa uma solução para configurar políticas de segurança para gerenciar requisições com base em valores de cookie específicos através do Firewall e das WAF Rules. Com esta solução, seu firewall gerenciará as requisições entrantes com base em cookies especificados, permitindo controle granular usando múltiplos conjuntos de regras para o mesmo endpoint, garantindo que o tráfego legítimo chegue à sua aplicação.

Implementar políticas de segurança com base em valores de cookie específicos pode ser útil em cenários como receber requisições de usuários autenticados ou ferramentas de terceiros integradas à sua infraestrutura, exigindo políticas específicas para esses cenários.

Para configurar regras WAF para permitir requisições com um cookie específico, você deve completar os seguintes três passos principais:

- [Criar um conjunto de regras WAF primário](#crie-um-conjunto-de-regras-waf-primario). Este será seu padrão de WAF e atenderá a todas as requisições que não são estáticas.
- [Criar um conjunto de regras WAF secundário](#crie-um-conjunto-de-regras-waf-secundario-com-um-cookie-especifico). Isso permitirá definir um cookie específico e incluirá uma Custom Allowed Rule.
- [Definir duas regras para o Rule Engine do Firewall](#configure-regras-no-rules-engine-para-edge-firewall). Isso definirá os critérios e comportamentos para processar as requisições, combinando seus conjuntos de regras WAF.

---

## Pré-requisitos

Para implementar esta solução, você deve ter:

- Um [firewall existente](/pt-br/documentacao/produtos/guias/secure/firewall-definir-main-settings/) com o **WAF** ativado.

---

## Crie um conjunto de regras WAF primário

Primeiro, você deve criar seu conjunto de regras WAF primário que será usado como padrão.

1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **WAF Rules**.
2. Clique no botão **+ WAF Rule**. 
3. Dê um nome único e descritivo para identificar seu novo conjunto de regras WAF.
    - Este exemplo usará `My Primary WAF - Standard`.
4. Defina sua **Threat Type Configuration**, selecionando as famílias de ameaças e a sensibilidade. 
5. Certifique-se de que o switch **Active** esteja ativado.
6. Clique no botão **Save**.

---

## Crie um conjunto de regras WAF secundário com um cookie específico

Ainda na página **WAF Rules**, você deve criar um **conjunto de regras WAF** secundário incluindo uma [Custom Allowed Rule](/pt-br/documentacao/produtos/secure/firewall/web-application-firewall/custom-allowed-rules/). Para fazer isso:

1. Clique no botão **+ WAF Rule** para criar a segunda instância. 
2. Dê um nome único e descritivo para identificar seu novo conjunto de regras WAF.
    - Este exemplo usará `My secondary WAF - Allow cookie`.
3. Defina sua **Threat Type Configuration**, selecionando as famílias de ameaças e a sensibilidade. 
4. Certifique-se de que o switch **Active** esteja ativado.
5. Clique no botão **Save**.

Para criar uma **Custom Allowed Rule**, ainda na página do conjunto de regras WAF que você criou: 

1. Selecione a aba **Allowed Rules**.
2. Clique no botão **+ Allowed Rule**. 
3. No menu suspenso **Rule ID**, selecione uma regra. 
    - Este exemplo usará a regra `1005 Possible SQL Injection attack: MySQL keyword | found in Body, Path, Query String or Cookies.` 
    - Saiba mais sobre todas as [regras internas disponíveis](/pt-br/documentacao/produtos/secure/firewall/web-application-firewall/custom-allowed-rules/). 
4. Em **Description**, explique o motivo pelo qual esta regra foi permitida.
5. Em **Path**, este exemplo usará `/` para aplicar a regra a todo o site.
    - Digite um caminho mais específico para atender às suas necessidades, se necessário.
6. No menu suspenso **Match Zone**, selecione a opção **Conditional Request Header**.
    - No campo **Header**, digite `Cookie`
    - Selecione a opção **Value** em **Matches on**. 
7. Clique no botão **Save**.

---

## Configure regras no Rules Engine para Firewall

Nesta etapa, você deve instanciar as regras no Rules Engine para executar seus conjuntos de regras WAF recém-criados.

:::note
Os comportamentos (*behaviors*) e regras serão executados na ordem em que estão dispostos.
:::

1. Abra o **Product menu** e selecione **Firewall**.
2. Selecione o firewall existente onde você deseja configurar as novas regras.
3. Vá para a aba **Rules Engine**. 
4. Clique no botão **+ Rules Engine**.
5. Dê um nome para a regra e, opcionalmente, uma descrição.
    - Este exemplo usará `First rule - Standard` como nome.
6. No campo **Criteria**, defina a seguinte lógica:
    - If `Request URI` `does not match` `\.(png|jpg|css|js|jpeg|gif|ico|ttf|svg|woff|woff2|ashx|asmx|svc|otf|eot)(\?.*)?$`
7. Clique no botão `+ And` para habilitar um segundo critério e defina a seguinte lógica:
    - `Request URI` `does not match` `[my-allowed-cookie|123]`.
    -  Substitua `my-allowed-cookie-123` pelo valor do cookie que você deseja permitir.
8. Em **Behavior**, selecione a opção **Set WAF Rule Set**. Isso abrirá dois novos campos:
    - Em **Select a WAF Rule**, selecione o conjunto de regras primário que você criou anteriormente. Neste caso, o chamado `My Primary WAF - Standard`.
    - Em **Select a WAF Mode**, selecione **Blocking**.
9. Clique no botão **Save**.

Agora, você deve definir a regra do Rules Engine para o conjunto de regras WAF secundário.

Ainda na aba **Rules Engine**:

1. Clique no botão **+ Rules Engine**.
2. Dê um nome para a regra e, opcionalmente, uma descrição.
    - Este exemplo usará `Second Rule - Cookies` como nome.
3.  No campo **Criteria**, defina a seguinte lógica:
    - If `Header Cookie` `matches` `[my-allowed-cookie|123]`.
    - Substitua `my-allowed-cookie-123` pelo valor do cookie que você deseja permitir.
4. Em **Behavior**, selecione a opção **Set WAF Rule Set**. Isso abrirá dois novos campos:
    - Em **Select a WAF Rule**, selecione o conjunto de regras secundário que você criou anteriormente. Neste caso, o chamado `My secondary WAF - Allow cookie`.
    - Em **Select a WAF Mode**, selecione **Blocking**.
5. Clique no botão **Save**.

Pronto. Agora, quando uma requisição chega à sua aplicação, o Firewall verificará se ela inclui seu cookie específico. Se não incluir seu cookie específico, ele executará sua regra padrão. Se identificar o cookie especificado, a requisição será avaliada pela segunda regra; neste caso, não levará em conta o ID da regra e o cookie específico em sua avaliação, mas ainda verificará todas as outras regras.

:::tip
Você pode usar os [produtos Observe da Azion](/pt-br/documentacao/produtos/observe/visao-geral/) para monitorar a entrega da sua aplicação, o tráfego de entrada e como suas lógicas de segurança estão sendo aplicadas e com quais requisições.
:::