JavaScript-utmaning för Azure Web Application Firewall

Azure Web Application Firewall (WAF) på Azure Application Gateway erbjuder en JS-utmaningsfunktion (JavaScript) som ett av alternativen för att minska risken för avancerat robotskydd.

Azure Web Application Firewall (WAF) på Azure Front Door erbjuder en JavaScript-utmaningsfunktion (JS) som ett av alternativen för att minska risken för avancerat robotskydd. Den är tillgänglig i premiumversionen som en åtgärd i den anpassade regeluppsättningen och Bot Manager 1.x-regeluppsättningen.

JavaScript-utmaningen är en osynlig webbutmaning som skiljer mellan legitima användare och robotar. Skadliga robotar misslyckas med uppgiften att skydda dina webbprogram. Dessutom minskar JavaScript-utmaningen friktionen för legitima användare eftersom den inte kräver mänsklig inblandning.

Viktigt!

Azure Web Application Firewall JavaScript-utmaningen på Azure Application Gateway är för närvarande i förhandsversion. Se kompletterande användningsvillkor för Microsoft Azure Previews för juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller på annat sätt ännu inte har släppts i allmän tillgänglighet.

Hur det fungerar

När JavaScript-utmaningen är aktiv i Azure WAF och en klients HTTP(S) begäran matchar en specifik regel visas en Microsoft JavaScript-utmaningssida. Användaren ser den här sidan i några sekunder medan webbläsaren beräknar utmaningen. Om användarens webbläsare beräknar utmaningen skickar den ett svar tillbaka till en Azure-slutpunkt som exponeras när du har konfigurerat WAF. Den här slutpunkten exponeras för allmänheten, men begäranden som skickas till den här slutpunkten vidarebefordras inte till serverdelen och räknas inte mot hastighetsbegränsningsfunktioner. Om webbläsarens anrop till den här slutpunkten innehåller rätt värden som anger en lyckad beräkning klarar användaren utmaningen.

Klientens webbläsare måste beräkna en JavaScript-utmaning på den här sidan för att få verifiering från Azure WAF. När beräkningen lyckas validerar WAF begäran som en icke-bot klient och kör resten av WAF-reglerna. Begäranden som inte lyckas beräkna utmaningen blockeras.

CORS-begäranden (Cross-Origin Resource Sharing) utmanas vid varje åtkomstförsök. Så om en klient kommer åt en sida som utlöser JavaScript-utmaningen från en domän som skiljer sig från domänen som är värd för utmaningen, står klienten inför utmaningen igen även om klienten tidigare klarade utmaningen.

Om en klient löser JavaScript-utmaningen och klientens IP-adress ändras utfärdas dessutom utmaningen igen.

Här är ett exempel på en JavaScript-utmaningssida:

Skärmbild som visar javascript-utmaningssidan.

Förfallodatum

WAF-principinställningen definierar livslängden för JavaScript-utmaningens cookie i minuter. Användaren utmanas när livslängden upphör att gälla. Livslängden är ett heltal mellan 5 och 1 440 minuter och standardvärdet är 30 minuter. JavaScript-utmaningens cookienamn finns appgw_azwaf_jsclearance på Azure Application Gateway.

WAF-principinställningen definierar livslängden för JavaScript-utmaningens cookie i minuter. Användaren utmanas när livslängden upphör att gälla. Livslängden är ett heltal mellan 5 och 1 440 minuter och standardvärdet är 30 minuter. JavaScript-utmaningens cookienamn finns afd_azwaf_jsclearance på Azure Front Door.

Kommentar

Förfallokakan för JavaScript-utmaningen matas in i användarens webbläsare när utmaningen har slutförts.

Begränsningar

  • AJAX- och API-anrop stöds inte: JavaScript-utmaningen gäller inte för AJAX- och API-begäranden.
  • Storleksbegränsning för POST-brödtext: Den första begäran som utlöser en JavaScript-utmaning blockeras om posttexten överskrider 128 KB på Azure Application Gateway.
  • Storleksbegränsning för POST-brödtext: Den första begäran som utlöser en JavaScript-utmaning blockeras om POST-brödtexten överskrider 64 kB på Azure Front Door.
  • Icke-HTML-inbäddade resurser: JavaScript-utmaningen är utformad för HTML-resurser. Utmaningar för icke-HTML-resurser som är inbäddade på en sida, till exempel bilder, CSS, JavaScript-filer eller liknande resurser, stöds inte. Men om det fanns en tidigare lyckad JavaScript-utmaningsbegäran hävs dessa begränsningar.

  • Webbläsarkompatibilitet: JavaScript-utmaningen stöds inte i Microsoft Internet Explorer. Den är kompatibel med de senaste versionerna av webbläsaren Microsoft Edge, Chrome, Firefox och Safari.

  • Hastighetsbegränsning stöds inte: JavaScript-utmaningsåtgärden på Application Gateway stöds inte för anpassade regler av klassgränstyp under förhandsversionen.

  • Application Gateway for Containers WAF: Application Gateway for Containers WAF stöder inte JavaScript-utmaning.