Crie uma exceção do WAF
Isente uma regra interna de pontuar uma parte da requisição, no path que produz um falso positivo, pelo Azion Console, pela CLI ou pela API.
Você pode criar uma exceção do Web Application Firewall (WAF) pelo Azion Console, pela Azion CLI ou pela API. Uma exceção tira uma parte da requisição do score de uma regra interna, no path que você nomear. Para transformar várias requisições correspondidas em exceções de uma vez, consulte Ajuste um WAF rule set.
O Azion Console chama uma exceção de allowed rule, e a aba que as guarda se chama Allowed Rules. A API e a Azion CLI chamam o mesmo objeto de exceção.
O exemplo desta página resolve um falso positivo. Uma API em /api/v1/data lê um parâmetro de query string filter cujos valores carregam um apóstrofo:
A regra interna 1013 corresponde a esse apóstrofo e a requisição é recusada. A exceção abaixo tira o parâmetro filter da regra 1013 apenas nesse path, e deixa a regra pontuando todas as outras requisições.
Selecione a interface que você vai usar. Os pré-requisitos e todos os procedimentos abaixo seguem essa escolha.
Pré-requisitos
- Um firewall com o módulo WAF habilitado. Consulte Defina as configurações principais de um firewall.
- Um rule set aplicado às requisições que você quer isentar. Consulte Crie e aplique um WAF rule set.
- O identificador da regra interna que produziu o falso positivo. Para os identificadores e o que cada regra detecta, consulte WAF Rule Sets.
- Acesso ao Azion Console. Para entrar, consulte Como acessar o Azion Console.
Crie a exceção
Uma exceção nomeia a regra interna que ela isenta, o path ao qual está restrita e ao menos uma condition que nomeia a parte da requisição que ela cobre. Uma condition construída sobre uma match zone specific_* carrega o nome ou o valor de um campo; uma match zone genérica cobre essa parte de todas as requisições. Para todos os campos que uma exceção aceita e as quinze match zones, consulte WAF Exceptions.
A comparação é definida uma vez, para a exceção inteira. contains lê o path e o nome ou o valor da condition como substrings. regex lê os dois como expressões regulares, e não há como fazer um ser um padrão e o outro um literal.
Para criar a exceção no Azion Console:
Acesse o Azion Console > Edge Libraries > WAF Rules.
Em Rule ID, selecione a regra que produziu o falso positivo. Neste exemplo, a regra 1013.
Em Description, escreva para que serve a exceção. Por exemplo: Allow apostrophes in the data API filter.
Em Path, digite /api/v1/data.
Em Condition, selecione Specific Query String Name e digite filter no campo Name que aparece.
Em Operator, selecione contains para ler as strings como substrings, ou regex para lê-las como expressões regulares.
A exceção aparece na aba Allowed Rules, em uma linha que carrega Rule ID, Description, Path, Conditions, Status, Last Editor e Last Modified. A mesma aba carrega um botão Create from Tuning, que escreve exceções a partir de registros que o rule set já correspondeu.
Uma exceção é aceita antes de estar em vigor. Ela alcança a infraestrutura distribuída da Azion ao longo dos próximos minutos, então uma requisição que continua recusada logo depois da criação não quebrou nada. Espere e envie de novo.
Confirme o que a exceção cobre
Ler a exceção de volta é a única forma de perceber isso. Compare as conditions que você recebe com as que você enviou, campo por campo.
Para ler a exceção de volta no Azion Console:
A coluna carrega a match zone e, para uma match zone specific_*, o nome ou o valor ao qual ela se aplica. Uma linha cuja match zone mostra Any onde você selecionou Specific cobre essa parte inteira de todas as requisições.