Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met Application Gateway kunt u geselecteerde inhoud herschrijven in aanvragen en antwoorden. Met deze functie kunt u URL's, queryreeksparameters vertalen en aanvraag- en antwoordheaders wijzigen. U kunt ook voorwaarden toevoegen om ervoor te zorgen dat de URL of de opgegeven headers alleen worden herschreven wanneer aan bepaalde voorwaarden wordt voldaan. Deze voorwaarden zijn gebaseerd op de informatie in de aanvraag en het antwoord.
De http-header- en URL-herschrijffuncties zijn alleen beschikbaar voor de Application Gateway v2-SKU.
Aanvraag- en antwoordheaders
Met Application Gateway kunt u HTTP-aanvraag- en antwoordheaders toevoegen, verwijderen of bijwerken terwijl de aanvraag- en antwoordpakketten tussen de client- en back-endpools schakelen. Met HTTP-headers kunnen een client en server extra informatie doorgeven met een aanvraag of antwoord. Door deze kopteksten te herschrijven, kunt u belangrijke taken uitvoeren, waaronder:
- Beveiligingsgerelateerde headervelden toevoegen, zoals HSTS en X-XSS-Protection
- Antwoordheadervelden verwijderen die gevoelige informatie kunnen onthullen
- Poortgegevens verwijderen uit X-Forwarded-For headers
U kunt alle headers in aanvragen en antwoorden herschrijven, met uitzondering van de Connection en Upgrade headers. U kunt de toepassingsgateway ook gebruiken om aangepaste headers te maken en deze toe te voegen aan de aanvragen en antwoorden die worden gerouteerd. Zie hier voor meer informatie over het herschrijven van aanvraag- en antwoordheaders met Application Gateway met behulp van Azure Portal.
URL-pad en querytekenreeks
Met de mogelijkheid voor het herschrijven van URL's in Application Gateway kunt u het volgende doen:
De hostnaam, het pad en de querytekenreeks van de aanvraag-URL herschrijven
Kies ervoor om de URL van alle aanvragen op een listener te herschrijven of alleen die aanvragen die overeenkomen met een of meer van de voorwaarden die u hebt ingesteld. Deze voorwaarden zijn gebaseerd op de aanvraageigenschappen (aanvraagheader- en servervariabelen).
Kies ervoor om de aanvraag te routeren (selecteer de back-endpool) op basis van de oorspronkelijke URL of de herschreven URL
Zie hier voor meer informatie over het herschrijven van URL's met Application Gateway met behulp van Azure Portal.
Meer informatie over herschrijven in Application Gateway
Een herschrijfset is een verzameling van een routeringsregel, conditie, en actie.
Koppeling van routeerregel aanvragen: De omschrijfconfiguratie koppelt aan een bronlistener via de routeerregel. Wanneer u een routeringsregel van het type Basic gebruikt, wordt de herschrijfconfiguratie gekoppeld aan de listener en werkt deze als een globale herschrijffunctie. Wanneer u een padgebaseerde routeringsregel gebruikt, definieert u de herschrijfconfiguratie op basis van de URL-padtoewijzing. In het laatste geval geldt dit alleen voor een specifiek padgebied van een site. U kunt een herschrijfset toepassen op meerdere routeringsregels, maar aan een regel voor doorsturen kan slechts één herschrijfregel zijn gekoppeld.
Voorwaarde herschrijven: Deze configuratie is optioneel. Op basis van de voorwaarden die u definieert, evalueert Application Gateway de inhoud van de HTTP(S)-aanvragen en -antwoorden. De volgende 'herschrijfactie' vindt plaats als de HTTP(S)-aanvraag of het antwoord overeenkomt met deze voorwaarde. Als u meer dan één voorwaarde aan een actie koppelt, treedt de actie alleen op wanneer aan alle voorwaarden wordt voldaan. Met andere woorden, het is een logische AND-bewerking. U kunt herschrijfvoorwaarden gebruiken om de inhoud van HTTP(S)-aanvragen en -antwoorden te evalueren. Met deze optionele configuratie kunt u alleen een herschrijfbewerking uitvoeren wanneer aan een of meer voorwaarden wordt voldaan. De toepassingsgateway gebruikt deze typen variabelen om de inhoud van aanvragen en antwoorden te evalueren:
U kunt de volgende typen kiezen om te zoeken naar een voorwaarde:
- HTTP-header (aanvraag en antwoord)
- Ondersteunde servervariabelen
Met een voorwaarde kunt u evalueren of een opgegeven header of variabele bestaat door de bijbehorende waarden te vergelijken met tekst of een Regex-patroon. Voor geavanceerde herschrijfconfiguraties kunt u ook de waarde van de header- of servervariabele vastleggen voor later gebruik onder Herschrijfactie. Meer informatie over patroon en vastleggen.
Herschrijfactie: Met de actieset Herschrijven kunt u headers (aanvraag of antwoord) of de URL-onderdelen herschrijven.
Een actie kan de volgende waardetypen of combinaties hebben:
- Tekst.
- Waarde van aanvraagheader: als u de waarde van een vastgelegde aanvraagheader wilt gebruiken, geeft u de syntaxis op als
{http_req_headerName}. - Waarde van antwoordheader: als u de waarde van een vastgelegde antwoordheader uit de voorgaande voorwaarde wilt gebruiken, geeft u de syntaxis op als
{http_resp_headerName}. Het actieblok Herschrijven ondersteunt ook het veld Header Value Matcher voor set-cookieheader. Met dit optionele veld kunt u de waarde van een specifieke koptekst vergelijken en vastleggen wanneer meerdere Set-Cookie headers met dezelfde naam bestaan. Als u de vastgelegde waarde van die specifieke cookie wilt bewerken, kunt u deze vervolgens gebruiken{capt_header_value_matcher}. Meer informatie over vastleggen onder actieset. - Servervariabele: als u een servervariabele wilt gebruiken, geeft u de syntaxis op als
{var_serverVariable}. Lijst met ondersteunde servervariabelen.
Notitie
Het gebruik van het veld {capt_header_value_matcher} voor headerwaarden wordt momenteel niet ondersteund via de portal. Daarom moet u een niet-portalmethode gebruiken voor PUT-bewerkingen als u dit veld gebruikt.
Wanneer u een actie gebruikt om een URL te herschrijven, worden de volgende bewerkingen ondersteund:
- URL-pad: de nieuwe waarde die als pad moet worden ingesteld.
- URL-queryreeks: de nieuwe waarde waarnaar de querytekenreeks moet worden herschreven.
- Padtoewijzing opnieuw evalueren: geef op of de URL-padtoewijzing opnieuw moet worden geëvalueerd na herschrijven. Als u deze optie niet inschakelt, wordt het oorspronkelijke URL-pad gebruikt om overeen te komen met het padpatroon in de URL-padmap. Als u deze optie op true instelt, wordt de URL-padmap opnieuw geëvalueerd om de overeenkomst met het herschreven pad te controleren. Het inschakelen van deze switch helpt bij het routeren van de aanvraag naar een andere back-endpool na herschrijven.
Patroonkoppeling en vastleggen
Application Gateway ondersteunt patroonkoppeling en vastleggen onder Voorwaarde en Actie. Onder Actie wordt ondersteuning geboden voor patroonherkenning en vastlegging, alleen voor een specifieke header.
Patroonherkenning
Application Gateway maakt gebruik van reguliere expressies voor patroonkoppeling. Gebruik RE2-compatibele expressies (Regular Expression 2) bij het schrijven van de overeenkomende syntaxis van uw patroon.
U kunt patroonkoppeling gebruiken onder voorwaarde en actie.
- Voorwaarde: Gebruik deze instelling om overeen te komen met de waarden voor een header- of servervariabele. Als u een patroon wilt vergelijken onder Voorwaarden, gebruikt u de eigenschap Pattern.
-
Actie: Patroonkoppeling onder Actieset is alleen beschikbaar voor de antwoordheader
Set-Cookie. Als u een patroon wilt vergelijken voorSet-Cookieonder een actie, gebruikt u deHeaderValueMatchereigenschap. Indien vastgelegd, kan de waarde ervan worden gebruikt als{capt_header_value_matcher}. Omdat er meerdereSet-Cookieheaders kunnen zijn, kunt u met patroonkoppeling hier naar een specifieke cookie zoeken. Voor een bepaalde versie van de gebruikersagent wilt u bijvoorbeeld deset-cookieantwoordheader voorcookie2herschrijven naarmax-age=3600(één uur). In dit geval kunt u- Voorwaarde - Type: Aanvraagheader, headernaam: user-agent, Pattern to match: *2.0
- Actie - Herschrijftype: Antwoordheader, Actietype: Instellen, Headernaam: Set-Cookie, Headerwaardevergelijker:
cookie2=(.*), Headerwaarde:cookie2={capt_header_value_matcher_1};Max-Age=3600
Notitie
Als u een Application Gateway Web Application Firewall (WAF) uitvoert met Core Rule Set 3.1 of eerder, kunt u problemen ondervinden bij het gebruik van Perl Compatibele reguliere expressies (PCRE) tijdens het uitvoeren van lookahead- en lookbehind-asserties (negatief of positief).
Syntaxis voor vastleggen
U kunt patronen gebruiken om een subtekenreeks vast te leggen voor later gebruik. Plaats haakjes rond een subpatroon in de regex-definitie. Het eerste paar haakjes slaat de subtekenreeks op in 1, het tweede paar in 2, enzovoort. U kunt zoveel haakjes gebruiken als u wilt. Perl definieert meer genummerde variabelen om deze vastgelegde tekenreeksen weer te geven. U vindt enkele voorbeelden in deze Perl-programmeerrichtlijnen.
- (\d)(\d) # Twee cijfers vergelijken, ze vastleggen in groepen 1 en 2
- (\d+) # Een of meer cijfers vergelijken en ze allemaal vastleggen in groep 1
- (\d)+ # Een cijfer een of meer keren vergelijken, waarbij de laatste wordt vastgelegd in groep 1
Zodra deze zijn vastgelegd, kunt u deze gebruiken in de waarde van de actieset met behulp van de volgende indeling:
- Voor een aanvraagheaderopname moet u {http_req_headerName_groupNumber} gebruiken. Bijvoorbeeld {http_req_User-Agent_1} of {http_req_User-Agent_2}
- Voor het vastleggen van een antwoordheader moet u {http_resp_headerName_groupNumber} gebruiken. Bijvoorbeeld {http_resp_Location_1} of {http_resp_Location_2}. Terwijl u {capt_header_value_matcher_groupNumber} moet gebruiken voor een set-cookie voor een antwoordheader die is vastgelegd via de eigenschap HeaderValueMatcher. Bijvoorbeeld {capt_header_value_matcher_1} of {capt_header_value_matcher_2}.
- Voor een servervariabele moet u {var_serverVariableName_groupNumber} gebruiken. Bijvoorbeeld {var_uri_path_1} of {var_uri_path_2}
Notitie
- Gebruik van '/' als voor- en achtervoegsel zou niet in het patroon moeten worden opgenomen om een waarde te zoeken of overeen te laten komen. (\d)(\d) komt bijvoorbeeld overeen met twee cijfers. /(\d)(\d)/ komt niet overeen met twee cijfers.
- Het geval van de voorwaardevariabele moet overeenkomen met het hoofdlettergebruik van de vastlegvariabele. Als mijn voorwaardevariabele bijvoorbeeld User-Agent is, moet mijn capture-variabele zijn voor User-Agent (dat is {http_req_User-Agent_2}). Als mijn voorwaardevariabele is gedefinieerd als user-agent, moet mijn capture-variabele zijn voor user-agent (dat is {http_req_user-agent_2}).
- Als u de hele waarde wilt gebruiken, moet u het getal niet vermelden. Gebruik gewoon de notatie {http_req_headerName}, enzovoort zonder het groupNumber.
Servervariabelen
Application Gateway maakt gebruik van servervariabelen om nuttige informatie op te slaan over de server, de verbinding met de client en de huidige aanvraag voor de verbinding. Voorbeelden van opgeslagen gegevens zijn het IP-adres van de client en het type webbrowser. Servervariabelen worden dynamisch gewijzigd, bijvoorbeeld wanneer een nieuwe pagina wordt geladen of wanneer een formulier wordt geplaatst. U kunt deze variabelen gebruiken om herschrijfvoorwaarden te evalueren en headers te herschrijven. Als u de waarde van servervariabelen wilt gebruiken om headers te herschrijven, moet u deze variabelen opgeven in de syntaxis {var_serverVariableName}
Application Gateway ondersteunt de volgende servervariabelen:
| Variabelenaam | Beschrijving |
|---|---|
| add_x_forwarded_for_proxy | Het veld X-Forwarded-For-clientaanvraag met de client_ip variabele (zie uitleg verderop in deze tabel) toegevoegd in de indeling IP1, IP2, IP3 enzovoort. Als het veld X-Forwarded-For zich niet in de header van de clientaanvraag bevindt, is de add_x_forwarded_for_proxy variabele gelijk aan de $client_ip variabele. Deze variabele is handig als u de X-Forwarded-For-header die is ingesteld door Application Gateway opnieuw wilt schrijven, zodat de header alleen het IP-adres zonder poortgegevens bevat. |
| ondersteunde_cijfers | Een lijst met de coderingen die door de client worden ondersteund. |
| gebruikte versleutelingen | De tekenreeks met coderingen die worden gebruikt voor een tot stand gebrachte TLS-verbinding. |
| client_ip | Het IP-adres van de client van waaruit de toepassingsgateway de aanvraag heeft ontvangen. Als er een omgekeerde proxy is vóór de toepassingsgateway en de oorspronkelijke client, client_ip retourneert u het IP-adres van de omgekeerde proxy. |
| client_port | De clientpoort. |
| client_tcp_rtt | Informatie over de TCP-clientverbinding. Beschikbaar op systemen die ondersteuning bieden voor de TCP_INFO socketoptie. |
| client_user | Wanneer HTTP-verificatie wordt gebruikt, wordt de gebruikersnaam opgegeven voor verificatie. |
| host | In deze volgorde van prioriteit: de hostnaam van de aanvraagregel, de hostnaam uit het veld Hostaanvraagheader of de servernaam die overeenkomt met een aanvraag. Voorbeeld: In de aanvraag http://contoso.com:8080/article.aspx?id=123&title=fabrikamis de hostwaarde contoso.com |
| cookie_naam | De naam cookie. |
| HTTP-methode | De methode die wordt gebruikt om de URL-aanvraag te doen. Bijvoorbeeld GET of POST. |
| http-status | De sessiestatus. Bijvoorbeeld 200, 400 of 403. |
| http_version | Het aanvraagprotocol. Meestal HTTP/1.0, HTTP/1.1 of HTTP/2.0. |
| query_string | De lijst met variabele/waardeparen die de ? in de aangevraagde URL volgen. Voorbeeld: In de aanvraag http://contoso.com:8080/article.aspx?id=123&title=fabrikamis query_string waarde id=123&title=fabrikam |
| ontvangen_bytes | De lengte van de aanvraag (inclusief de aanvraagregel, header en aanvraagbody). |
| request_query | De argumenten in de aanvraagregel. |
| request_scheme | Het aanvraagschema: http of https. |
| aanvraag_uri | De volledige oorspronkelijke aanvraag-URI (met argumenten). Voorbeeld: in de aanvraag http://contoso.com:8080/article.aspx?id=123&title=fabrikam*is request_uri waarde /article.aspx?id=123&title=fabrikam |
| verzonden_bytes | Het aantal bytes dat naar een client is verzonden. |
| serverpoort | De poort van de server die een aanvraag heeft geaccepteerd. |
| ssl_connection_protocol | Het protocol van een tot stand gebrachte TLS-verbinding. |
| ssl_enabled | 'Aan' als de verbinding werkt in de TLS-modus. Anders is er een lege tekenreeks. |
| uri_path | Identificeert de specifieke resource in de host waartoe de webclient toegang wil hebben. De variabele verwijst naar het oorspronkelijke URL-pad voordat u bewerkingen kunt uitvoeren. Dit is het deel van de aanvraag-URI zonder de argumenten. In de aanvraag http://contoso.com:8080/article.aspx?id=123&title=fabrikamis /article.aspxde uri_path waarde bijvoorbeeld . |
Servervariabelen voor wederzijdse verificatie
Application Gateway ondersteunt de volgende servervariabelen voor wederzijdse verificatiescenario's. Gebruik deze servervariabelen zoals u andere servervariabelen zou doen.
| Variabelenaam | Beschrijving |
|---|---|
| clientcertificaat | Het clientcertificaat in PEM-indeling voor een tot stand gebrachte SSL-verbinding. |
| einddatum_clientcertificaat | De einddatum van het clientcertificaat. |
| klantcertificaatvingerafdruk | De SHA1-vingerafdruk van het clientcertificaat voor een tot stand gebrachte SSL-verbinding. |
| client_certificate_issuer | De tekenreeks 'issuer DN' van het clientcertificaat voor een tot stand gebrachte SSL-verbinding. |
| clientcertificaatserienummer | Het serienummer van het clientcertificaat voor een tot stand gebrachte SSL-verbinding. |
| klant_certificaat_begindatum | De begindatum van het clientcertificaat. |
| client_certificate_subject | De tekenreeks 'onderwerp-DN' van het clientcertificaat voor een tot stand gebrachte SSL-verbinding. |
| client_certificate_verification | Het resultaat van de verificatie van het clientcertificaat: GESLAAGD, MISLUKT:<reden> of GEEN als er geen certificaat aanwezig was. |
Algemene scenario's voor het herschrijven van headers
Poortgegevens verwijderen uit de header X-Forwarded-For
Application Gateway voegt een X-Forwarded-For-header in alle aanvragen in voordat deze de aanvragen doorstuurt naar de back-end. Deze header is een door komma's gescheiden lijst met IP-poorten. Er kunnen scenario's zijn waarin de back-endservers alleen de headers nodig hebben om IP-adressen te bevatten. U kunt het herschrijven van headers gebruiken om de poortgegevens uit de X-Forwarded-For-header te verwijderen. Een manier om dit te doen, is door de header in te stellen op de add_x_forwarded_for_proxy servervariabele. U kunt ook de variabele client_ip gebruiken:
Een omleidings-URL wijzigen
Het wijzigen van een omleidings-URL kan onder bepaalde omstandigheden nuttig zijn. U kunt clients bijvoorbeeld oorspronkelijk omleiden naar een pad zoals '/blog', maar ze nu naar '/updates' willen verzenden vanwege een wijziging in de inhoudsstructuur.
Waarschuwing
Mogelijk moet u een omleidings-URL wijzigen wanneer u Application Gateway configureert om de hostnaam naar de back-end te overschrijven. In deze configuratie ziet de back-end een andere hostnaam dan de browser. De omleiding gebruikt niet de juiste hostnaam. Deze configuratie wordt niet aanbevolen.
Zie De oorspronkelijke HTTP-hostnaam behouden tussen een omgekeerde proxy en de back-endwebtoepassing voor meer informatie over de beperkingen en gevolgen van een dergelijke configuratie. Zie 'Aangepast domein (aanbevolen)' in App Service configureren met Application Gateway voor de aanbevolen installatie voor App Service. Het herschrijven van de locatieheader in het antwoord, zoals beschreven in het volgende voorbeeld, moet als tijdelijke oplossing worden beschouwd en de hoofdoorzaak niet aanpakken.
Wanneer de App Service een omleidingsantwoord verzendt, gebruikt deze dezelfde hostnaam in de locatieheader van het antwoord als de hostnaam in de aanvraag die wordt ontvangen van de toepassingsgateway. De client doet de aanvraag dus rechtstreeks naar contoso.azurewebsites.net/path2 in plaats van via de toepassingsgateway (contoso.com/path2). Het omzeilen van de toepassingsgateway is niet wenselijk.
U kunt dit probleem oplossen door de hostnaam in de locatieheader in te stellen op de domeinnaam van de toepassingsgateway.
Hier volgen de stappen voor het vervangen van de hostnaam:
Maak een herschrijfregel met een voorwaarde die controleert of de locatieheader in het antwoord azurewebsites.net bevat. Voer het patroon (https?)://in. azurewebsites.net(.).
Voer een actie uit om de locatieheader opnieuw te schrijven, zodat deze de hostnaam van de toepassingsgateway heeft. Voer deze
{http_resp_Location_1}://contoso.com{http_resp_Location_2}waarde in als de headerwaarde. U kunt ook de servervariabelehostgebruiken om de hostnaam in te stellen op basis van de oorspronkelijke aanvraag.
HTTP-headers voor beveiliging implementeren om beveiligingsproblemen te voorkomen
U kunt verschillende beveiligingsproblemen oplossen door de benodigde headers in het toepassingsantwoord te implementeren. Deze beveiligingsheaders omvatten X-XSS-Protection, Strict-Transport-Security en Content-Security-Policy. U kunt Application Gateway gebruiken om deze headers in te stellen voor alle antwoorden.
Ongewenste headers verwijderen
Mogelijk wilt u headers verwijderen die gevoelige informatie uit een HTTP-antwoord onthullen. U kunt bijvoorbeeld informatie verwijderen, zoals de naam van de back-endserver, het besturingssysteem of bibliotheekgegevens. U kunt de toepassingsgateway gebruiken om deze headers te verwijderen:
U kunt geen herschrijfregel maken om de hostheader te verwijderen. Als u probeert een herschrijfregel te maken met het actietype dat is ingesteld om te verwijderen en de header is ingesteld op host, resulteert dit in een fout.
Controleren op de aanwezigheid van een koptekst
U kunt een HTTP-aanvraag of antwoordheader evalueren voor de aanwezigheid van een header of servervariabele. Deze evaluatie is handig als u een koptekst alleen opnieuw wilt schrijven wanneer een bepaalde koptekst aanwezig is.
Veelvoorkomende scenario's voor het herschrijven van URL's
Selectie van pad op basis van parameters
Als u scenario's wilt uitvoeren waarbij u de back-endpool wilt kiezen op basis van de waarde van een header, een deel van de URL of queryreeks in de aanvraag, gebruikt u een combinatie van url-herschrijfmogelijkheden en padgebaseerde routering.
Maak een herschrijfset met een voorwaarde die controleert op een specifieke parameter (querytekenreeks, header, enzovoort) en voer vervolgens een actie uit waarbij het URL-pad wordt gewijzigd (zorg ervoor dat padtoewijzing opnieuw wordt geëvalueerd ). Koppel de herschrijfset aan een regel op basis van een pad. De padgebaseerde regel moet dezelfde URL-paden bevatten die zijn opgegeven in de herschrijfset en de bijbehorende back-endpool.
Met de herschrijfset kunt u dus controleren op een specifieke parameter en deze toewijzen aan een nieuw pad. Met de regel op basis van het pad kunt u back-endpools aan deze paden toewijzen. Zolang 'Herbeoordeling van padkaart' is ingeschakeld, worden verkeersroutes bepaald op basis van het opgegeven pad in de herschrijfset.
Zie Verkeer routeren met behulp van op parameters gebaseerde padselectie in de portal voor een voorbeeld van een use-case met behulp van queryreeksen.
Queryreeksparameters herschrijven op basis van de URL
Overweeg een scenario van een winkelwebsite waarbij de door de gebruiker zichtbare koppeling eenvoudig en leesbaar is, maar de back-endserver de queryreeksparameters nodig heeft om de juiste inhoud weer te geven.
In dat geval kan Application Gateway parameters uit de URL vastleggen en sleutel-waardeparen voor queryreeksen toevoegen uit deze parameters in de URL. Als de gebruiker bijvoorbeeld wil herschrijven https://www.contoso.com/fashion/shirtshttps://www.contoso.com/buy.aspx?category=fashion&product=shirts, kunt u dit doel bereiken via de volgende configuratie voor het herschrijven van url's.
Voorwaarde : als de servervariabele uri_path gelijk is aan het patroon /(.+)/(.+)
Actie : URL-pad instellen op buy.aspx en queryreeks instellen op category={var_uri_path_1}&product={var_uri_path_2}
Zie De URL herschrijven met Application Gateway met behulp van Azure Portal voor een stapsgewijze handleiding voor het bereiken van het eerder beschreven scenario.
Algemene valkuilen voor configuratie herschrijven
U kunt 'Padkaart her-evalueren' niet inschakelen voor basisregels voor aanvraagroutering. Deze beperking voorkomt een oneindige evaluatielus voor een basisrouteringsregel.
Voor padgebaseerde routeringsregels hebt u ten minste één voorwaardelijke herschrijvingsregel of één herschrijfregel nodig zonder 'Heroverweeg padmap' ingeschakeld. Deze vereiste voorkomt een oneindige evaluatielus voor een padgebaseerde routeringsregel.
Als een lus dynamisch wordt gemaakt op basis van clientinvoer, worden binnenkomende aanvragen beëindigd met een foutcode van 500. Application Gateway blijft andere verzoeken verwerken zonder enige degradatie in de prestaties in dit scenario.
URL opnieuw schrijven of hostheader herschrijven met Web Application Firewall (WAF_v2 SKU)
Wanneer u het herschrijven van url's of het herschrijven van hostheaders configureert, vindt de WAF-evaluatie plaats na de wijziging van de aanvraagheader- of URL-parameters (na herschrijven). Wanneer u de configuratie voor het herschrijven van url's of hostheaders op uw Application Gateway verwijdert, vindt de WAF-evaluatie plaats vóór het herschrijven van de header (vooraf herschrijven). Deze volgorde zorgt ervoor dat WAF-regels van toepassing zijn op de laatste aanvraag die uw back-endpool ontvangt.
Stel dat u de volgende regel voor het herschrijven van de header "Accept" : "text/html" hebt: als de waarde van de koptekst "Accept" gelijk is aan "text/html", herschrijft u de waarde vervolgens naar "image/png".
Als alleen het herschrijven van headers is geconfigureerd, vindt de WAF-evaluatie plaats op "Accept" : "text/html". Maar wanneer u url-herschrijvingen of het herschrijven van hostheaders configureert, vindt de WAF-evaluatie plaats op "Accept" : "image/png".
URL herschrijven versus URL-omleiding
Voor het herschrijven van een URL herschrijft Application Gateway de URL voordat deze de aanvraag naar de back-end verzendt. Met deze actie wordt niet gewijzigd wat gebruikers in de browser zien, omdat de wijzigingen verborgen zijn voor de gebruiker.
Voor een URL-omleiding verzendt Application Gateway een omleidingsreactie naar de client met de nieuwe URL. Voor dit antwoord moet de client de aanvraag opnieuw verzenden naar de nieuwe URL die is opgegeven in de omleiding. De URL die de gebruiker in de browser ziet, wordt bijgewerkt naar de nieuwe URL.
Beperkingen
- Herschrijven wordt niet ondersteund wanneer de toepassingsgateway is geconfigureerd om de aanvragen om te leiden of om een aangepaste foutpagina weer te geven.
- Namen van aanvraagheaders kunnen alfanumerieke tekens en afbreekstreepjes bevatten. Headernamen met andere tekens worden verwijderd wanneer een aanvraag naar het doel-backend wordt verzonden.
- Namen van antwoordheaders kunnen alfanumerieke tekens en specifieke symbolen bevatten, zoals gedefinieerd in RFC 7230.
- U kunt niet herschrijven
X-Original-Host,Connectionenupgradekopteksten. - Herschrijven wordt niet ondersteund voor 4xx- en 5xx-antwoorden die rechtstreeks vanuit Application Gateway worden gegenereerd.