Skip to content

Commit db2f84a

Browse files
committed
add chrome steps
1 parent 62898cc commit db2f84a

File tree

5 files changed

+42
-15
lines changed

5 files changed

+42
-15
lines changed

articles/web-application-firewall/ag/web-application-firewall-troubleshoot.md

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ description: This article provides troubleshooting information for Web Applicati
55
author: halkazwini
66
ms.author: halkazwini
77
ms.service: azure-web-application-firewall
8-
ms.topic: concept-article
9-
ms.date: 06/10/2025
8+
ms.topic: how-to
9+
ms.date: 06/13/2025
1010
---
1111

1212
# Troubleshoot Web Application Firewall (WAF) for Azure Application Gateway
@@ -17,7 +17,7 @@ Start by reviewing the [WAF overview](ag-overview.md) and [WAF configuration](ap
1717

1818
The OWASP rule sets are designed to be strict out of the box, and to be tuned to suit the specific needs of the application or organization using WAF. It's entirely normal, and expected in many cases, to create exclusions, custom rules, and even disable rules that may be causing issues or false positives. Per-site and per-URI policies allow for these changes to only affect specific sites/URIs. So changes shouldn’t have to affect other sites that may not be running into the same issues.
1919

20-
## Understanding WAF logs
20+
## Understand WAF logs
2121

2222
The purpose of WAF logs is to show every request that WAF matches or blocks. It's a ledger of all evaluated requests that are matched or blocked. If you notice that the WAF blocks a request that it shouldn't (a false positive), you can do a few things. First, narrow down, and find the specific request. Look through the logs to find the specific URI, timestamp, or transaction ID of the request. When you find the associated log entries, you can begin to act on the false positives.
2323

@@ -130,15 +130,15 @@ The final two log entries show the request was blocked because the anomaly score
130130
}
131131
```
132132

133-
## Fixing false positives
133+
## Fix false positives
134134

135135
With this information, and the knowledge that rule 942130 is the one that matched the `1=1` string, you can do a few things to stop this from blocking your traffic:
136136

137137
- Use an exclusion list. For more information about exclusion lists, see [WAF exclusion lists](application-gateway-waf-configuration.md).
138138

139139
- Disable the rule.
140140

141-
### Using an exclusion list
141+
### Use an exclusion list
142142

143143
To make an informed decision about handling a false positive, it’s important to familiarize yourself with the technologies your application uses. For example, say there isn't a SQL server in your technology stack, and you're getting false positives related to those rules. Disabling those rules doesn't necessarily weaken your security.
144144

@@ -154,24 +154,26 @@ In this example, you want to exclude the **Request attribute name** that equals
154154

155155
You can create exclusions for WAF in Application Gateway at different scope levels. For more information, see [Web Application Firewall exclusion lists](application-gateway-waf-configuration.md#exclusion-scopes).
156156

157-
### Disabling rules
157+
### Disable rules
158158

159159
Another way to get around a false positive is to disable the rule that matched on the input the WAF thought was malicious. Since you've parsed the WAF logs and have narrowed the rule down to 942130, you can disable it in the Azure portal. See [Customize web application firewall rules through the Azure portal](application-gateway-customize-waf-rules-portal.md).
160160

161161
One benefit of disabling a rule is that if you know all traffic that contains a certain condition that is normally blocked is valid traffic, you can disable that rule for the entire WAF. However, if it’s only valid traffic in a specific use case, you open up a vulnerability by disabling that rule for the entire WAF since it's a global setting.
162162

163163
If you want to use Azure PowerShell, see [Customize web application firewall rules through PowerShell](application-gateway-customize-waf-rules-powershell.md). If you want to use Azure CLI, see [Customize web application firewall rules through the Azure CLI](application-gateway-customize-waf-rules-cli.md).
164164

165-
## HAR files
165+
## Record HAR files
166166

167167
You can use your browser or an external tool like Fiddler to record HTTP Archive (HAR) files. HAR files contain information about the requests and responses that your browser makes when loading a web page. This information can be useful for troubleshooting WAF issues.
168168

169169
> [!TIP]
170170
> It's a good practice to have the HAR file ready when you contact support. The support team can use the HAR file to help diagnose the issue.
171171
172+
# [**Edge**](#tab/edge)
173+
172174
To record and save a HAR file in Microsoft Edge, follow these steps
173175

174-
1. Press **F12** or **Ctrl + Shift + I** to launch Edge Developer tools. You can also launch the tools from the toolbar menu under **More tools > Developer tools**.
176+
1. Press **F12** or **Ctrl+Shift+I** to launch Edge Developer tools. You can also launch the tools from the toolbar menu under **More tools > Developer tools**.
175177

176178
1. In the **Console** tab, select **Clear console** or press **Ctrl + L**.
177179

@@ -187,11 +189,38 @@ To record and save a HAR file in Microsoft Edge, follow these steps
187189

188190
1. Stop recording by selecting the **Stop recording network log**.
189191

190-
1. Select **Export HAR (sanitized)...** and save the file. If you don't see the export icon, expand the width of your Edge developer tools window.
192+
1. Select **Export HAR (sanitized)...** and save the HAR file. If you don't see the export icon, expand the width of your Edge developer tools window.
191193

192194
:::image type="content" source="../media/web-application-firewall-troubleshoot/edge-dev-tools-save-file.png" alt-text="Screenshot that shows how to save the HAR file in Microsoft Edge developer tools.":::
193195

194-
## Finding request attribute names
196+
# [**Chrome**](#tab/chrome)
197+
198+
To record and save a HAR file in Google Chrome, follow these steps
199+
200+
1. Press **F12** or **Ctrl+Shift+I** to launch Chrome Developer tools. You can also launch the tools from the toolbar menu under **More tools > Developer tools**.
201+
202+
1. In the **Console** tab, select **Clear console** or press **Ctrl + L**.
203+
204+
:::image type="content" source="../media/web-application-firewall-troubleshoot/chrome-dev-tools-console.png" alt-text="Screenshot of the Console tab of Google Chrome developer tools.":::
205+
206+
1. Select the **Network** tab.
207+
208+
1. Select **Clear network log**, and then select the **Record network log** if it's not recording.
209+
210+
:::image type="content" source="../media/web-application-firewall-troubleshoot/chrome-dev-tools-network.png" alt-text="Screenshot of the Network tab of Google Chrome developer tools.":::
211+
212+
1. Load the webpage that's protected by your WAF for which you want to troubleshoot.
213+
214+
1. Stop recording by selecting the **Stop recording network log**.
215+
216+
1. Select **Export HAR (sanitized)...** and save the HAR file.
217+
218+
:::image type="content" source="../media/web-application-firewall-troubleshoot/edge-dev-tools-save-file.png" alt-text="Screenshot that shows how to save the HAR file in Microsoft Edge developer tools.":::
219+
220+
---
221+
222+
223+
## Find request attribute names
195224

196225
With the help of [Fiddler](https://www.telerik.com/fiddler), you inspect individual requests and determine what specific fields of a web page are called. This can help to exclude certain fields from inspection using Exclusion Lists.
197226

@@ -318,17 +347,15 @@ The first entry is logged because the user used a numeric IP address to navigate
318347

319348
The second one (rule 942130) is the interesting one. You can see in the details that it matched a pattern `(1=1)`, and the field is named **text1**. Follow the same previous steps to exclude the **Request Attribute Name** that equals `1=1`.
320349

321-
## Finding request header names
350+
## Find request header names
322351

323352
Fiddler is a useful tool once again to find request header names. In the following screenshot, you can see the headers for this GET request, which include *Content-Type*, *User-Agent*, and so on.
324353

325354
:::image type="content" source="../media/web-application-firewall-troubleshoot/fiddler-2.png" alt-text="Screenshot of the Progress Telerik Fiddler Web Debugger. The Raw tab lists request header details like the connection, content-type, and user-agent." lightbox="../media/web-application-firewall-troubleshoot/fiddler-2.png":::
326355

327-
Another way to view request and response headers is to look inside the developer tools of Chrome. You can press F12 or right-click -> **Inspect** -> **Developer Tools**, and select the **Network** tab. Load a web page, and select the request you want to inspect.
328-
329-
:::image type="content" source="../media/web-application-firewall-troubleshoot/chrome-f12.png" alt-text="Screenshot that shows the result of clicking F12 in a Chrome browser." lightbox="../media/web-application-firewall-troubleshoot/chrome-f12.png":::
356+
Another way to view request and response headers is to use the developer tools of Microsoft Edge or Google Chrome. For more information, see [Record HAR files](#record-har-files).
330357

331-
## Finding request cookie names
358+
## Find request cookie names
332359

333360
If the request contains cookies, the **Cookies** tab can be selected to view them in Fiddler.
334361

7.24 KB
Loading
9.71 KB
Loading
9.72 KB
Loading

0 commit comments

Comments
 (0)