Ir para o conteúdo

Localizar e substituir ​

Localizar e substituir modifica automaticamente o tráfego enquanto ele passa pelo proxy, sem pausá-lo nem exigir uma ação manual em cada requisição.

Como as regras funcionam ​

Cada regra define o que procurar e o que fazer com o resultado. Quando uma requisição ou resposta corresponde às condições, a regra aplica sua transformação imediatamente.

As regras são aplicadas na ordem em que aparecem na lista. Se duas regras atuarem no mesmo cabeçalho, a primeira regra correspondente será aplicada primeiro, e as regras seguintes verão o resultado dessa alteração.

Campos de uma regra ​

CampoDescrição
NomeRótulo da regra. Use um nome descritivo para identificar sua finalidade.
DireçãoSe a regra se aplica a requisições, respostas ou ambas
OperaçãoQual transformação executar (consulte a tabela de operações abaixo)
Modo de correspondênciaLiteral, expressão regular ou conteúdo completo, dependendo da operação
Valor de correspondênciaA string ou o padrão a localizar
Valor de substituiçãoO valor a inserir como substituição
AtivadoOpção para ativar ou desativar a regra sem excluí-la
FiltrosCondições opcionais de método, host, caminho e HTTPQL que limitam onde a regra se aplica

Operações ​

OperaçãoO que faz
Adicionar cabeçalhoAdiciona um novo cabeçalho com nome e valor fixos
Remover cabeçalhoExclui um cabeçalho pelo nome
Substituir cabeçalhoSubstitui o valor de um cabeçalho existente
Substituir corpoSubstitui uma parte do corpo usando o valor de correspondência
Caminho / consulta / parâmetro de consultaAltera o caminho da requisição ou os valores da consulta
Linha de requisição / respostaAltera o componente selecionado da linha inicial HTTP
Código de statusAltera o status de uma resposta
Mensagem brutaTransforma a linha inicial HTTP, os cabeçalhos e o corpo em conjunto
Payload WebSocketSubstitui o conteúdo correspondente de mensagens do cliente/servidor
Fluxo de trabalhoExecuta um fluxo do tipo Converter ativado sobre o conteúdo selecionado

Modos de correspondência ​

Literal corresponde à string exata. Use para tokens fixos, nomes de cabeçalhos ou valores específicos.

Expressão regular corresponde usando uma expressão regular. Use quando o alvo variar, por exemplo, para localizar um token que muda em cada sessão ou capturar e reutilizar um grupo na substituição.

Nas substituições com expressões regulares, use grupos de captura com $1, $2 etc. para referenciar os trechos correspondentes no valor de substituição.

Completo passa todo o conteúdo selecionado para a transformação, em vez de procurar uma substring. Algumas operações, como adicionar/remover um cabeçalho com nome, usam um nome literal e não oferecem todos os modos.

Transformar um corpo de resposta completo ​

  1. Crie e ative um fluxo do tipo Converter e valide-o com uma entrada de teste.
  2. Crie uma regra de Localizar e substituir com direção Resposta e operação Fluxo de trabalho (corpo).
  3. Escolha o modo de correspondência Completo e selecione o fluxo.
  4. Restrinja a regra com um filtro HTTPQL, por exemplo:
text
req.host.eq:"cdn.example.com" AND (req.path.cont:".js" OR resp.headers["Content-Type"].value.cont:"javascript")

O fluxo recebe o corpo inteiro; sua saída substitui esse corpo. Fluxo de trabalho (cabeçalho) transforma um cabeçalho com nome, enquanto Fluxo de trabalho (cabeçalhos brutos) transforma o bloco de cabeçalhos. Essas entradas são diferentes do corpo da resposta.

Os filtros HTTPQL são verificados no contexto de requisição/resposta disponível. Uma regra na direção de requisição não pode depender de uma resposta que ainda não chegou. Desative os logs do fluxo quando a regra produzir um alto volume de execuções; ative-os temporariamente para diagnosticar uma transformação.

Reordenar regras ​

Arraste uma linha de regra para reposicioná-la na lista. A ordem importa quando regras modificam partes sobrepostas da mesma requisição ou resposta.

Assistência de IA ​

Clique em Assistência de IA no editor de regras e descreva em linguagem natural o que você quer alterar. O Ogma gera os campos da regra com base na descrição. Revise e ajuste os valores gerados antes de ativar a regra.

Exemplos de instruções que funcionam bem:

  • "Remova o cabeçalho X-Frame-Options de todas as respostas"
  • "Substitua o valor do cabeçalho Authorization pelo meu token de teste"
  • "Adicione um cabeçalho chamado X-Debug com valor true a todas as requisições"

Testar uma regra ​

Antes de ativar uma regra para tráfego real, teste-a com uma requisição de exemplo:

  1. Abra o editor de regras.
  2. Cole uma requisição HTTP bruta no painel Testar.
  3. Clique em Aplicar regras. O painel mostra o resultado e quais regras foram aplicadas.
  4. Verifique se a saída corresponde ao esperado.
  5. Ative a regra.

O painel Testar também tem um alvo Resposta com entradas de status, cabeçalhos e corpo. Confira a lista de regras aplicadas: isso testa as regras aplicáveis, não apenas um campo isolado do editor.

Localizar e substituir versus Interceptação ​

Localizar e substituir é automático. Depois de ativada, uma regra transforma toda requisição ou resposta correspondente sem nenhuma ação sua.

Interceptação pausa o tráfego e aguarda uma decisão manual. Use Interceptação quando a alteração correta depender de um contexto que você precisa avaliar em cada requisição. Use Localizar e substituir quando a mesma transformação deve ser aplicada sempre, sem revisão.

Usos comuns ​

  • Trocar um cookie de sessão em todas as requisições para testar outra conta.
  • Adicionar um cabeçalho que ative um modo de depuração ou administração.
  • Remover cabeçalhos de segurança das respostas para avaliar o comportamento do cliente.
  • Substituir um host definido de forma fixa em respostas de redirecionamento.
  • Reescrever um prefixo de caminho de requisição.

Software proprietário. Todos os direitos reservados.