Skip to content

Commit c9f8f24

Browse files
committed
Mark tech review
1 parent 3ddc163 commit c9f8f24

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

articles/web-application-firewall/waf-javascript-challenge.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: This article is an overview of the Azure Web Application Firewall J
44
services: web-application-firewall
55
author: sowmyam2019
66
ms.service: web-application-firewall
7-
ms.date: 06/10/2024
7+
ms.date: 06/12/2024
88
ms.author: victorh
99
ms.topic: concept-article
1010

@@ -19,19 +19,24 @@ ms.topic: concept-article
1919
2020
Azure Web Application Firewall (WAF) on Azure Front Door and Azure Application Gateway offers a JavaScript challenge feature as one of the mitigation options for advanced bot protection. For Azure Front Door, It's available on the premium version as an action in the custom rule set and the Bot Manager 1.x ruleset.
2121

22-
The JavaScript challenge is an invisible web challenge used to distinguish between legitimate users and bots. Malicious bots fail the challenge, which protects web applications. In addition, the JavaScript challenge is beneficial as it reduces friction for legitimate users. This is because it doesn't require any human intervention.
22+
The JavaScript challenge is an invisible web challenge used to distinguish between legitimate users and bots. Malicious bots fail the challenge, which protects web applications. In addition, the JavaScript challenge is beneficial as it reduces friction for legitimate users because it doesn't require any human intervention.
2323

2424
## How it works
2525

2626
When the JS Challenge is active on Azure WAF and a client's HTTP(s) request matches a specific rule, the client is shown a Microsoft JS challenge page. The user sees this page for a few seconds while the user’s browser computes the challenge. The client's browser must successfully compute a JavaScript challenge on this page to receive validation from Azure WAF. When the computation succeeds, WAF validates the request as a nonbot client and runs the rest of the WAF rules. Requests that fail to successfully compute the challenge are blocked.
2727

28+
Cross-origin resource sharing (CORS) requests are challenged on each access attempt. So if a client accesses a page that triggers the JavaScript challenge from a domain different from the domain hosting the challenge, the client faces the challenge again even if the client previously passed the challenge.
29+
30+
In addition, if a client solves the JavaScript challenge and then the client’s IP address changes, the challenge is issued again.
31+
32+
2833
Here's an example JavaScript challenge page:
2934

3035
:::image type="content" source="media/waf-javascript-challenge/javascript-challenge-page.png" alt-text="Screenshot showing the JavaScript challenge page.":::
3136

3237
## Expiration
3338

34-
The WAF policy setting defines the JavaScript challenge cookie validity lifetime in minutes. The user is challenged after the lifetime expires. The lifetime is an integer between 5 and 1440 minutes and the default is 30 minutes. The JavaScript challenge cookie name is `afd_azwaf_jsclearance` on Azure Front Door, and `appgw_azwaf_jsclearance` on Azure Application Gateway.
39+
The WAF policy setting defines the JavaScript challenge cookie validity lifetime in minutes. The user is challenged after the lifetime expires. The lifetime is an integer between 5 and 1,440 minutes and the default is 30 minutes. The JavaScript challenge cookie name is `afd_azwaf_jsclearance` on Azure Front Door, and `appgw_azwaf_jsclearance` on Azure Application Gateway.
3540

3641
> [!NOTE]
3742
> The JavaScript challenge expiration cookie is injected into the user’s browser after successfully completing the challenge.
@@ -41,6 +46,4 @@ The WAF policy setting defines the JavaScript challenge cookie validity lifetime
4146
- AJAX and API calls aren't supported.
4247
- If the first call that receives a JavaScript challenge has a POST body size greater than 128 KB, it blocks it. Additionally, challenges for non-HTML resources embedded in a page aren't supported. For example images, css, js, and so on. However, if there's a prior successful JavaScript challenge request, then the previous limitations are removed.
4348
- The challenge isn't supported on Microsoft Internet Explorer. The challenge is supported on the latest versions of the Microsoft Edge, Chrome, Firefox, and Safari web browsers.
44-
- Cross-origin resource sharing (CORS) requests result in a challenge loop. If you visit a page that triggers the JavaScript challenge action from a domain that isn't the same as the domain running the JavaScript challenge, you're challenged regardless of prior challenge passes.
45-
- If one IP address receives the JavaScript challenge, and a different IP address that belongs to the same domain solves it, the computation result becomes invalid, potentially causing a challenge loop.
46-
- The JavaScript challenge action on Web Application Firewall on Application Gateway is not supported for *Rate Limit* type custom rules during the public preview.
49+
- The JavaScript challenge action on Web Application Firewall on Application Gateway isn't supported for *Rate Limit* type custom rules during the public preview.

0 commit comments

Comments
 (0)