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
| Campo | Descrição |
|---|---|
| Nome | Rótulo da regra. Use um nome descritivo para identificar sua finalidade. |
| Direção | Se a regra se aplica a requisições, respostas ou ambas |
| Operação | Qual transformação executar (consulte a tabela de operações abaixo) |
| Modo de correspondência | Literal, expressão regular ou conteúdo completo, dependendo da operação |
| Valor de correspondência | A string ou o padrão a localizar |
| Valor de substituição | O valor a inserir como substituição |
| Ativado | Opção para ativar ou desativar a regra sem excluí-la |
| Filtros | Condições opcionais de método, host, caminho e HTTPQL que limitam onde a regra se aplica |
Operações
| Operação | O que faz |
|---|---|
| Adicionar cabeçalho | Adiciona um novo cabeçalho com nome e valor fixos |
| Remover cabeçalho | Exclui um cabeçalho pelo nome |
| Substituir cabeçalho | Substitui o valor de um cabeçalho existente |
| Substituir corpo | Substitui uma parte do corpo usando o valor de correspondência |
| Caminho / consulta / parâmetro de consulta | Altera o caminho da requisição ou os valores da consulta |
| Linha de requisição / resposta | Altera o componente selecionado da linha inicial HTTP |
| Código de status | Altera o status de uma resposta |
| Mensagem bruta | Transforma a linha inicial HTTP, os cabeçalhos e o corpo em conjunto |
| Payload WebSocket | Substitui o conteúdo correspondente de mensagens do cliente/servidor |
| Fluxo de trabalho | Executa 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
- Crie e ative um fluxo do tipo Converter e valide-o com uma entrada de teste.
- Crie uma regra de Localizar e substituir com direção Resposta e operação Fluxo de trabalho (corpo).
- Escolha o modo de correspondência Completo e selecione o fluxo.
- 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:
- Abra o editor de regras.
- Cole uma requisição HTTP bruta no painel Testar.
- Clique em Aplicar regras. O painel mostra o resultado e quais regras foram aplicadas.
- Verifique se a saída corresponde ao esperado.
- 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.