Zoeken en vervangen
Zoeken en vervangen (Match & Replace) wijzigt verkeer automatisch terwijl het door de proxy gaat, zonder te pauzeren of handmatige actie per verzoek te vereisen.
Hoe regels werken
Elke regel definieert waarnaar wordt gezocht en wat ermee moet gebeuren. Wanneer een verzoek of antwoord aan de voorwaarden voldoet, past de regel onmiddellijk de transformatie toe.
Regels worden toegepast in de volgorde waarin ze in de lijst staan. Als twee regels dezelfde header bewerken, wordt de eerste overeenkomende regel eerst toegepast en zien volgende regels het resultaat van die wijziging.
Regelvelden
| Veld | Beschrijving |
|---|---|
| Naam | Label voor de regel. Gebruik een beschrijvende naam om het doel aan te geven. |
| Richting | Of de regel van toepassing is op verzoeken, antwoorden of beide |
| Bewerking | Welke transformatie wordt uitgevoerd (zie de bewerkingstabel hieronder) |
| Zoekmodus | Letterlijk, regex of volledige inhoud, afhankelijk van de bewerking |
| Zoekwaarde | De te zoeken tekenreeks of het patroon |
| Vervangingswaarde | De in te voegen vervangende waarde |
| Ingeschakeld | Schakelaar om de regel te activeren of deactiveren zonder deze te verwijderen |
| Filters | Optionele methode-, host-, pad- en HTTPQL-voorwaarden die beperken waar de regel geldt |
Bewerkingen
| Bewerking | Wat deze doet |
|---|---|
| Header toevoegen | Voegt een nieuwe header met een vaste naam en waarde toe |
| Header verwijderen | Verwijdert een header op naam |
| Header vervangen | Vervangt de waarde van een bestaande header |
| Body vervangen | Vervangt een deel van de body met behulp van de zoekwaarde |
| Pad / query / queryparameter | Wijzigt het verzoekpad of querywaarden |
| Verzoek- / antwoordregel | Wijzigt het geselecteerde onderdeel van de HTTP-startregel |
| Statuscode | Wijzigt een antwoordstatus |
| Ruw bericht | Transformeert de HTTP-startregel, headers en body samen |
| WebSocket-payload | Vervangt overeenkomende client-/serverberichtinhoud |
| Workflow | Voert een ingeschakelde conversieworkflow uit op de geselecteerde inhoud |
Zoekmodi
Letterlijk zoekt de exacte tekenreeks. Gebruik dit voor vaste tokens, headernamen of specifieke waarden.
Regex zoekt met een reguliere expressie. Gebruik dit wanneer het doel varieert, bijvoorbeeld voor een token dat per sessie verandert of om een groep vast te leggen en in de vervanging te hergebruiken.
Gebruik bij regexvervangingen vastgelegde groepen met $1, $2, enzovoort om in de vervangingswaarde naar overeenkomende delen te verwijzen.
Volledige vervanging geeft de volledige geselecteerde inhoud door aan de transformatie in plaats van naar een deeltekenreeks te zoeken. Sommige bewerkingen, zoals het toevoegen/verwijderen van een benoemde header, gebruiken in plaats daarvan een letterlijke naam en bieden niet alle modi aan.
Een volledige antwoordbody transformeren
- Maak en activeer een workflow van het type conversie en valideer deze vervolgens met testinvoer.
- Maak een regel in Zoeken en vervangen met richting Antwoord en bewerking Workflow (body).
- Kies de zoekmodus Volledige vervanging en selecteer de workflow.
- Beperk de regel met een HTTPQL-filter, bijvoorbeeld:
text
req.host.eq:"cdn.example.com" AND (req.path.cont:".js" OR resp.headers["Content-Type"].value.cont:"javascript")De workflow ontvangt de volledige body; de uitvoer vervangt die body. Workflow (header) transformeert een benoemde header, terwijl Workflow (onbewerkte headers) het headerblok transformeert. Dit zijn andere invoergegevens dan de antwoordbody.
HTTPQL-filters worden gecontroleerd binnen de beschikbare verzoek-/antwoordcontext. Een regel in de verzoekrichting kan niet steunen op een antwoord dat nog niet is binnengekomen. Schakel workflowlogging uit wanneer de regel veel uitvoeringen oplevert; schakel deze tijdelijk in om een transformatie te onderzoeken.
Regels herschikken
Sleep een regelrij naar een andere positie in de lijst. De volgorde is belangrijk wanneer regels overlappende delen van hetzelfde verzoek of antwoord wijzigen.
AI-hulp
Klik op Invullen met AI in de regeleditor en beschrijf in gewone taal wat je wilt wijzigen. Ogma genereert de regelvelden op basis van je beschrijving. Controleer en pas de gegenereerde waarden aan voordat je de regel inschakelt.
Voorbeelden van goed werkende prompts:
- "Verwijder de X-Frame-Options-header uit alle antwoorden"
- "Vervang de waarde van de Authorization-header door mijn testtoken"
- "Voeg een header met de naam X-Debug en waarde true toe aan alle verzoeken"
Een regel testen
Test een regel met een voorbeeldverzoek voordat je deze voor liveverkeer inschakelt:
- Open de regeleditor.
- Plak een ruw HTTP-verzoek in het paneel Testen.
- Klik op Regels toepassen. Het paneel toont het resultaat en welke regels zijn toegepast.
- Controleer of de uitvoer overeenkomt met je verwachtingen.
- Schakel de regel in.
Het paneel Testen heeft ook een doel Antwoord met invoervelden voor status, headers en body. Controleer de lijst met toegepaste regels: dit test de toepasselijke regels, niet alleen een geïsoleerd editorveld.
Zoeken en vervangen versus Interceptie
Zoeken en vervangen werkt automatisch. Zodra een regel is ingeschakeld, transformeert deze elk overeenkomend verzoek of antwoord zonder dat je iets hoeft te doen.
Interceptie pauzeert verkeer en wacht op een handmatige beslissing. Gebruik Interceptie wanneer de juiste wijziging afhangt van context die je per verzoek moet beoordelen. Gebruik Zoeken en vervangen wanneer dezelfde transformatie elke keer zonder beoordeling moet worden toegepast.
Veelvoorkomende toepassingen
- Een sessiecookie in alle verzoeken vervangen om een ander account te testen.
- Een header toevoegen die een debug- of beheerdersmodus inschakelt.
- Beveiligingsheaders uit antwoorden verwijderen om clientgedrag te beoordelen.
- Een hardgecodeerde host in omleidingsantwoorden vervangen.
- Een voorvoegsel van een verzoekpad herschrijven.